更新录制会话的时间格式,添加小时显示;在录制页面中引入计时器组件,并调整触摸锁定覆盖层的样式。

This commit is contained in:
2026-06-05 15:03:53 +08:00
parent 0a2cfe27ac
commit a39fcdb929
4 changed files with 52 additions and 5 deletions

View File

@@ -0,0 +1,45 @@
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:recording_tool/features/recording/view-model/view_model_recording.dart';
class RecordTimerWidget extends ConsumerStatefulWidget {
const RecordTimerWidget({super.key});
@override
ConsumerState<RecordTimerWidget> createState() => _RecordTimerWidgetState();
}
class _RecordTimerWidgetState extends ConsumerState<RecordTimerWidget> {
@override
Widget build(BuildContext context) {
final session = ref.watch(
recordingViewModelProvider.select((value) => value.session),
);
final isRecording = session.isRecording;
final displayTime = isRecording ? session.elapsedLabel : '00:00:00';
return Positioned(
top: 13.r,
left: 0,
right: 0,
child: Center(
child: Container(
padding: EdgeInsets.symmetric(horizontal: 5.r, vertical: 0.r),
decoration: BoxDecoration(
color: isRecording ? Colors.red : Colors.transparent,
borderRadius: BorderRadius.circular(6.r),
),
child: Text(
displayTime,
style: TextStyle(
color: isRecording ? Colors.white : Colors.white70,
fontSize: 20.sp,
shadows: [Shadow(color: Colors.black54, blurRadius: 6.r)],
),
),
),
),
);
}
}

View File

@@ -74,7 +74,7 @@ class _RecordingTouchLockOverlayWidgetState
child: Align(
alignment: Alignment.topCenter,
child: Padding(
padding: EdgeInsets.only(top: 48.r),
padding: EdgeInsets.only(top: 68.r),
child: DecoratedBox(
decoration: BoxDecoration(
color: Colors.black54,
@@ -89,7 +89,7 @@ class _RecordingTouchLockOverlayWidgetState
_isHolding
? '保持按住 ${widget.unlockHoldDuration.inSeconds}s 解锁…'
: '防误触已开启,按住 ${widget.unlockHoldDuration.inSeconds}s 解锁',
style: TextStyle(color: Colors.white, fontSize: 13.sp),
style: TextStyle(color: Colors.white, fontSize: 10.sp),
),
),
),