From 085f5d7d6846ba132d7897faa770bc397ef828e0 Mon Sep 17 00:00:00 2001 From: MohammadTaha Basiri Date: Fri, 4 Mar 2022 11:52:41 +0330 Subject: [PATCH] D1APP-108 interactive viewer back button style --- lib/views/widgets/didvan/page_view.dart | 29 ++++++++++++------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/lib/views/widgets/didvan/page_view.dart b/lib/views/widgets/didvan/page_view.dart index e42744c..7faf24f 100644 --- a/lib/views/widgets/didvan/page_view.dart +++ b/lib/views/widgets/didvan/page_view.dart @@ -8,7 +8,6 @@ import 'package:didvan/views/home/widgets/tag_item.dart'; import 'package:didvan/views/widgets/animated_visibility.dart'; import 'package:didvan/views/widgets/didvan/card.dart'; import 'package:didvan/views/widgets/didvan/divider.dart'; -import 'package:didvan/views/widgets/didvan/icon_button.dart'; import 'package:didvan/views/widgets/didvan/text.dart'; import 'package:didvan/views/widgets/ink_wrapper.dart'; import 'package:didvan/views/widgets/item_title.dart'; @@ -194,7 +193,6 @@ class _DidvanPageViewState extends State { 'span': Style( textAlign: TextAlign.center, fontSize: FontSize.small, - alignment: Alignment.center, ), }, ); @@ -219,11 +217,7 @@ class _DidvanPageViewState extends State { ), Positioned( right: 16, - child: DidvanIconButton( - backgroundColor: Theme.of(context).colorScheme.primary, - icon: DidvanIcons.back_regular, - onPressed: Navigator.of(context).pop, - ), + child: _BackButton(), ), ], ), @@ -277,9 +271,8 @@ class _DidvanPageViewState extends State { } class _BackButton extends StatefulWidget { - final ScrollController scrollController; - const _BackButton({Key? key, required this.scrollController}) - : super(key: key); + final ScrollController? scrollController; + const _BackButton({Key? key, this.scrollController}) : super(key: key); @override __BackButtonState createState() => __BackButtonState(); @@ -290,20 +283,26 @@ class __BackButtonState extends State<_BackButton> { @override void didUpdateWidget(covariant _BackButton oldWidget) { - _isVisible = false; - _handleScroll(); + if (widget.scrollController != null) { + _isVisible = false; + _handleScroll(); + } super.didUpdateWidget(oldWidget); } @override void initState() { - _handleScroll(); + if (widget.scrollController != null) { + _handleScroll(); + } else { + _isVisible = true; + } super.initState(); } void _handleScroll() { - widget.scrollController.addListener(() { - final position = widget.scrollController.position.pixels; + widget.scrollController!.addListener(() { + final position = widget.scrollController!.position.pixels; final size = MediaQuery.of(context).size.height * 0.3; if (position > size && _isVisible == false) { setState(() {