fix: seek anim

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-02-10 21:26:03 +08:00
parent 6114e6f033
commit 1417fcda6e
3 changed files with 110 additions and 133 deletions

View File

@@ -3,11 +3,11 @@ import 'dart:async';
import 'package:flutter/material.dart';
class BackwardSeekIndicator extends StatefulWidget {
final void Function(Duration) onChanged;
// final void Function(Duration) onChanged;
final void Function(Duration) onSubmitted;
const BackwardSeekIndicator({
super.key,
required this.onChanged,
// required this.onChanged,
required this.onSubmitted,
});
@@ -28,18 +28,24 @@ class BackwardSeekIndicatorState extends State<BackwardSeekIndicator> {
});
}
void increment() {
@override
void dispose() {
timer?.cancel();
timer = Timer(const Duration(milliseconds: 400), () {
widget.onSubmitted.call(value);
});
widget.onChanged.call(value);
// 重复点击 快退秒数累加10
setState(() {
value += const Duration(seconds: 10);
});
super.dispose();
}
// void increment() {
// timer?.cancel();
// timer = Timer(const Duration(milliseconds: 400), () {
// widget.onSubmitted.call(value);
// });
// widget.onChanged.call(value);
// // 重复点击 快退秒数累加10
// setState(() {
// value += const Duration(seconds: 10);
// });
// }
@override
Widget build(BuildContext context) {
return Container(
@@ -53,32 +59,31 @@ class BackwardSeekIndicatorState extends State<BackwardSeekIndicator> {
end: Alignment.centerRight,
),
),
child: InkWell(
splashColor: const Color(0x44767676),
onTap: increment,
child: Center(
child: Column(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
const Icon(
Icons.fast_rewind,
size: 24.0,
color: Colors.white,
),
const SizedBox(height: 8.0),
Text(
'快退${value.inSeconds}',
style: const TextStyle(
fontSize: 12.0,
color: Colors.white,
),
),
],
// child: InkWell(
// splashColor: const Color(0x44767676),
// onTap: increment,
alignment: Alignment.center,
child: Column(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
const Icon(
Icons.fast_rewind,
size: 24.0,
color: Colors.white,
),
),
const SizedBox(height: 8.0),
Text(
'快退${value.inSeconds}',
style: const TextStyle(
fontSize: 12.0,
color: Colors.white,
),
),
],
),
// ),
);
}
}

View File

@@ -3,11 +3,11 @@ import 'dart:async';
import 'package:flutter/material.dart';
class ForwardSeekIndicator extends StatefulWidget {
final void Function(Duration) onChanged;
// final void Function(Duration) onChanged;
final void Function(Duration) onSubmitted;
const ForwardSeekIndicator({
super.key,
required this.onChanged,
// required this.onChanged,
required this.onSubmitted,
});
@@ -28,18 +28,24 @@ class ForwardSeekIndicatorState extends State<ForwardSeekIndicator> {
});
}
void increment() {
@override
void dispose() {
timer?.cancel();
timer = Timer(const Duration(milliseconds: 400), () {
widget.onSubmitted.call(value);
});
widget.onChanged.call(value);
// 重复点击 快进秒数累加10
setState(() {
value += const Duration(seconds: 10);
});
super.dispose();
}
// void increment() {
// timer?.cancel();
// timer = Timer(const Duration(milliseconds: 400), () {
// widget.onSubmitted.call(value);
// });
// widget.onChanged.call(value);
// // 重复点击 快进秒数累加10
// setState(() {
// value += const Duration(seconds: 10);
// });
// }
@override
Widget build(BuildContext context) {
return Container(
@@ -53,32 +59,31 @@ class ForwardSeekIndicatorState extends State<ForwardSeekIndicator> {
end: Alignment.centerRight,
),
),
child: InkWell(
splashColor: const Color(0x44767676),
onTap: increment,
child: Center(
child: Column(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
const Icon(
Icons.fast_forward,
size: 24.0,
color: Colors.white,
),
const SizedBox(height: 8.0),
Text(
'快进${value.inSeconds}',
style: const TextStyle(
fontSize: 12.0,
color: Colors.white,
),
),
],
// child: InkWell(
// splashColor: const Color(0x44767676),
// onTap: increment,
alignment: Alignment.center,
child: Column(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
const Icon(
Icons.fast_forward,
size: 24.0,
color: Colors.white,
),
),
const SizedBox(height: 8.0),
Text(
'快进${value.inSeconds}',
style: const TextStyle(
fontSize: 12.0,
color: Colors.white,
),
),
],
),
// ),
);
}
}