D1APP-108 interactive viewer back button style

This commit is contained in:
MohammadTaha Basiri 2022-03-04 11:52:41 +03:30
parent 8fee5e2ca7
commit 085f5d7d68
1 changed files with 14 additions and 15 deletions

View File

@ -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/animated_visibility.dart';
import 'package:didvan/views/widgets/didvan/card.dart'; import 'package:didvan/views/widgets/didvan/card.dart';
import 'package:didvan/views/widgets/didvan/divider.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/didvan/text.dart';
import 'package:didvan/views/widgets/ink_wrapper.dart'; import 'package:didvan/views/widgets/ink_wrapper.dart';
import 'package:didvan/views/widgets/item_title.dart'; import 'package:didvan/views/widgets/item_title.dart';
@ -194,7 +193,6 @@ class _DidvanPageViewState extends State<DidvanPageView> {
'span': Style( 'span': Style(
textAlign: TextAlign.center, textAlign: TextAlign.center,
fontSize: FontSize.small, fontSize: FontSize.small,
alignment: Alignment.center,
), ),
}, },
); );
@ -219,11 +217,7 @@ class _DidvanPageViewState extends State<DidvanPageView> {
), ),
Positioned( Positioned(
right: 16, right: 16,
child: DidvanIconButton( child: _BackButton(),
backgroundColor: Theme.of(context).colorScheme.primary,
icon: DidvanIcons.back_regular,
onPressed: Navigator.of(context).pop,
),
), ),
], ],
), ),
@ -277,9 +271,8 @@ class _DidvanPageViewState extends State<DidvanPageView> {
} }
class _BackButton extends StatefulWidget { class _BackButton extends StatefulWidget {
final ScrollController scrollController; final ScrollController? scrollController;
const _BackButton({Key? key, required this.scrollController}) const _BackButton({Key? key, this.scrollController}) : super(key: key);
: super(key: key);
@override @override
__BackButtonState createState() => __BackButtonState(); __BackButtonState createState() => __BackButtonState();
@ -290,20 +283,26 @@ class __BackButtonState extends State<_BackButton> {
@override @override
void didUpdateWidget(covariant _BackButton oldWidget) { void didUpdateWidget(covariant _BackButton oldWidget) {
_isVisible = false; if (widget.scrollController != null) {
_handleScroll(); _isVisible = false;
_handleScroll();
}
super.didUpdateWidget(oldWidget); super.didUpdateWidget(oldWidget);
} }
@override @override
void initState() { void initState() {
_handleScroll(); if (widget.scrollController != null) {
_handleScroll();
} else {
_isVisible = true;
}
super.initState(); super.initState();
} }
void _handleScroll() { void _handleScroll() {
widget.scrollController.addListener(() { widget.scrollController!.addListener(() {
final position = widget.scrollController.position.pixels; final position = widget.scrollController!.position.pixels;
final size = MediaQuery.of(context).size.height * 0.3; final size = MediaQuery.of(context).size.height * 0.3;
if (position > size && _isVisible == false) { if (position > size && _isVisible == false) {
setState(() { setState(() {