opt video appbar

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-08-09 17:30:29 +08:00
parent 162a79145f
commit 720f3e10e8
2 changed files with 9 additions and 11 deletions

View File

@@ -1289,21 +1289,22 @@ class _PLVideoPlayerState extends State<PLVideoPlayer>
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(

View File

@@ -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<Offset>(
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,