diff --git a/lib/plugin/pl_player/view.dart b/lib/plugin/pl_player/view.dart index 68f544a9..0140dfb2 100644 --- a/lib/plugin/pl_player/view.dart +++ b/lib/plugin/pl_player/view.dart @@ -1289,21 +1289,22 @@ class _PLVideoPlayerState extends State final visible = !plPlayerController.controlsLock.value && plPlayerController.showControls.value; + visible + ? animationController.forward() + : animationController.reverse(); return Positioned.fill( child: ClipRect( child: Column( children: [ AppBarAni( + isTop: true, controller: animationController, - visible: visible, - position: 'top', child: widget.headerControl, ), const Spacer(), AppBarAni( + isTop: false, controller: animationController, - visible: visible, - position: 'bottom', child: widget.bottomControl ?? BottomControl( diff --git a/lib/plugin/pl_player/widgets/app_bar_ani.dart b/lib/plugin/pl_player/widgets/app_bar_ani.dart index dfe083ea..7a8bb9c7 100644 --- a/lib/plugin/pl_player/widgets/app_bar_ani.dart +++ b/lib/plugin/pl_player/widgets/app_bar_ani.dart @@ -4,23 +4,20 @@ class AppBarAni extends StatelessWidget { const AppBarAni({ required this.child, required this.controller, - required this.visible, - this.position, + required this.isTop, super.key, }); final Widget child; final AnimationController controller; - final bool visible; - final String? position; + final bool isTop; @override Widget build(BuildContext context) { - visible ? controller.forward() : controller.reverse(); return SlideTransition( position: Tween( - begin: Offset(0, position! == 'top' ? -1 : 1.1), + begin: isTop ? const Offset(0, -1) : const Offset(0, 1.1), end: Offset.zero, ).animate( CurvedAnimation( @@ -30,7 +27,7 @@ class AppBarAni extends StatelessWidget { ), child: DecoratedBox( decoration: BoxDecoration( - gradient: position! == 'top' + gradient: isTop ? const LinearGradient( begin: Alignment.bottomCenter, end: Alignment.topCenter,