From 96fe885752dcd1783efaf191902f84971668b8c5 Mon Sep 17 00:00:00 2001 From: Thibault Deckers Date: Tue, 24 Dec 2019 14:03:21 +0900 Subject: [PATCH] fullscreen: minor overlay fixes --- lib/widgets/fullscreen/fullscreen_page.dart | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/lib/widgets/fullscreen/fullscreen_page.dart b/lib/widgets/fullscreen/fullscreen_page.dart index b0f1f3c1c..da0aeaf33 100644 --- a/lib/widgets/fullscreen/fullscreen_page.dart +++ b/lib/widgets/fullscreen/fullscreen_page.dart @@ -63,7 +63,7 @@ class FullscreenBodyState extends State with SingleTickerProvide PageController _horizontalPager, _verticalPager; final ValueNotifier _overlayVisible = ValueNotifier(true); AnimationController _overlayAnimationController; - Animation _topOverlayScale; + Animation _topOverlayScale, _bottomOverlayScale; Animation _bottomOverlayOffset; EdgeInsets _frozenViewInsets, _frozenViewPadding; FullscreenActionDelegate _actionDelegate; @@ -90,11 +90,17 @@ class FullscreenBodyState extends State with SingleTickerProvide ); _topOverlayScale = CurvedAnimation( parent: _overlayAnimationController, - curve: Curves.easeOutQuart, + // a little bounce at the top + curve: Curves.easeOutBack, + ); + _bottomOverlayScale = CurvedAnimation( + parent: _overlayAnimationController, + // no bounce at the bottom, to avoid video controller displacement + curve: Curves.easeOutQuad, ); _bottomOverlayOffset = Tween(begin: const Offset(0, 1), end: const Offset(0, 0)).animate(CurvedAnimation( parent: _overlayAnimationController, - curve: Curves.easeOutQuart, + curve: Curves.easeOutQuad, )); _overlayVisible.addListener(_onOverlayVisibleChange); _actionDelegate = FullscreenActionDelegate( @@ -114,6 +120,7 @@ class FullscreenBodyState extends State with SingleTickerProvide @override void dispose() { + _overlayAnimationController.dispose(); _overlayVisible.removeListener(_onOverlayVisibleChange); _videoControllers.forEach((kv) => kv.item2.dispose()); super.dispose(); @@ -174,7 +181,7 @@ class FullscreenBodyState extends State with SingleTickerProvide VideoControlOverlay( entry: entry, controller: videoController, - scale: _topOverlayScale, + scale: _bottomOverlayScale, viewInsets: _frozenViewInsets, viewPadding: _frozenViewPadding, ),