diff --git a/lib/pages/home/news/news_details/news_details.dart b/lib/pages/home/news/news_details/news_details.dart index d30e52f..9b55a2d 100644 --- a/lib/pages/home/news/news_details/news_details.dart +++ b/lib/pages/home/news/news_details/news_details.dart @@ -43,6 +43,7 @@ class _NewsDetailsState extends State { onPageChanged: _onPageChnaged, scrollController: _scrollController, items: state.news, + currentIndex: state.currentIndex, ), if (state.news.isNotEmpty) Positioned( diff --git a/lib/pages/home/radar/radar_details/radar_details.dart b/lib/pages/home/radar/radar_details/radar_details.dart index 9e83488..6b27000 100644 --- a/lib/pages/home/radar/radar_details/radar_details.dart +++ b/lib/pages/home/radar/radar_details/radar_details.dart @@ -43,6 +43,7 @@ class _RadarDetailsState extends State { onPageChanged: _onPageChanged, scrollController: _scrollController, items: state.radars, + currentIndex: state.currentIndex, ), if (state.radars.isNotEmpty) Positioned( diff --git a/lib/pages/home/widgets/floating_navigation_bar.dart b/lib/pages/home/widgets/floating_navigation_bar.dart index fea2fbc..25bf4ef 100644 --- a/lib/pages/home/widgets/floating_navigation_bar.dart +++ b/lib/pages/home/widgets/floating_navigation_bar.dart @@ -56,6 +56,7 @@ class _FloatingNavigationBarState extends State { @override void initState() { + _handleScroll(); _isScrolled = false; _comments = widget.comments; super.initState(); @@ -170,6 +171,23 @@ class _FloatingNavigationBarState extends State { ); } + void _handleScroll() { + widget.scrollController.addListener(() { + final position = widget.scrollController.position.pixels; + final size = MediaQuery.of(context).size.height * 0.3; + if (position > size && _isScrolled == false) { + setState(() { + _isScrolled = true; + }); + } + if (position < size && _isScrolled == true) { + setState(() { + _isScrolled = false; + }); + } + }); + } + void _showMoreOptions() { final categories = widget.categories!; ActionSheetUtils.showBottomSheet( diff --git a/lib/widgets/didvan/page_view.dart b/lib/widgets/didvan/page_view.dart index 7eb1739..efbe19b 100644 --- a/lib/widgets/didvan/page_view.dart +++ b/lib/widgets/didvan/page_view.dart @@ -11,17 +11,19 @@ import 'package:flutter_html/flutter_html.dart'; class DidvanPageView extends StatefulWidget { final List items; final int initialIndex; + final int currentIndex; final bool isRadar; - final ScrollController? scrollController; + final ScrollController scrollController; final void Function(int index) onPageChanged; const DidvanPageView({ Key? key, required this.initialIndex, required this.items, - this.scrollController, + required this.scrollController, required this.onPageChanged, required this.isRadar, + required this.currentIndex, }) : super(key: key); @override @@ -48,7 +50,8 @@ class _DidvanPageViewState extends State { child: SizedBox( height: MediaQuery.of(context).size.height, child: SingleChildScrollView( - controller: index == 1 ? widget.scrollController : null, + controller: + index == widget.currentIndex ? widget.scrollController : null, physics: const BouncingScrollPhysics(), padding: EdgeInsets.only( left: 4,