Skip to content

Commit

Permalink
[home] bump hidable to add custom visibility algorithm
Browse files Browse the repository at this point in the history
  • Loading branch information
BrightDV committed Oct 13, 2023
1 parent c0e6ff8 commit 91ecc7d
Show file tree
Hide file tree
Showing 5 changed files with 26 additions and 5 deletions.
4 changes: 2 additions & 2 deletions lib/api/article_parts.dart
Original file line number Diff line number Diff line change
Expand Up @@ -1462,7 +1462,7 @@ class WidgetsList extends StatelessWidget {

// related articles

kIsWeb && false
kIsWeb
? Stack(
alignment: Alignment.center,
children: [
Expand Down Expand Up @@ -1556,7 +1556,7 @@ class WidgetsList extends StatelessWidget {
child: ListView.builder(
scrollDirection: Axis.horizontal,
controller: scrollController,
physics: PagingScrollPhysics(
physics: const PagingScrollPhysics(
itemDimension: 300,
),
itemCount: article.relatedArticles.length,
Expand Down
1 change: 0 additions & 1 deletion lib/api/news.dart
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@

import 'dart:async';
import 'dart:convert';
import 'dart:ui';

import 'package:better_player/better_player.dart';
import 'package:boxbox/Screens/circuit.dart';
Expand Down
23 changes: 23 additions & 0 deletions lib/helpers/bottom_navigation_bar.dart
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ import 'package:boxbox/Screens/standings.dart';
import 'package:boxbox/helpers/news_feed_widget.dart';
import 'package:flutter/foundation.dart' show kIsWeb;
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import 'package:hidable/hidable.dart';
import 'package:hive_flutter/hive_flutter.dart';
Expand Down Expand Up @@ -63,6 +64,23 @@ class _MainBottomNavigationBarState extends State<MainBottomNavigationBar> {
setState(() {});
}

// ref: https://github.com/insolite-dev/hidable/issues/26#issuecomment-1752105018
double customHidableVisibility(
ScrollPosition position, double currentVisibility) {
const double deltaFactor = 0.04;

// scrolls down
if (position.userScrollDirection == ScrollDirection.reverse) {
return (currentVisibility - deltaFactor).clamp(0, 1);
}

// scrolls up
if (position.userScrollDirection == ScrollDirection.forward) {
return (currentVisibility + deltaFactor).clamp(0, 1);
}
return currentVisibility;
}

@override
Widget build(BuildContext context) {
int themeMode =
Expand Down Expand Up @@ -312,6 +330,11 @@ class _MainBottomNavigationBarState extends State<MainBottomNavigationBar> {
)
: Hidable(
controller: scrollController,
visibility: (position, currentVisibility) =>
customHidableVisibility(
position,
currentVisibility,
),
child: BottomNavigationBar(
type: BottomNavigationBarType.fixed,
backgroundColor: useDarkMode
Expand Down
2 changes: 1 addition & 1 deletion pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ dependencies:
fluttertoast: ^8.2.1
font_awesome_flutter: ^10.2.1
geojson_vi: ^2.0.7
hidable: ^1.0.5
hidable: ^1.0.6
hive: ^2.1.0
hive_flutter: ^1.1.0
html: ^0.15.4
Expand Down
1 change: 0 additions & 1 deletion story_view/lib/widgets/story_view.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import 'dart:async';
import 'dart:math';
import 'dart:ui';

import 'package:collection/collection.dart' show IterableExtension;
import 'package:flutter/material.dart';
Expand Down

0 comments on commit 91ecc7d

Please sign in to comment.