|
@@ -1,4 +1,3 @@
|
|
|
-import 'dart:async';
|
|
|
|
|
import 'package:flutter/material.dart';
|
|
import 'package:flutter/material.dart';
|
|
|
|
|
|
|
|
class ActivityCountdownTextView extends StatefulWidget {
|
|
class ActivityCountdownTextView extends StatefulWidget {
|
|
@@ -49,25 +48,28 @@ class _ActivityCountdownTxtViewState extends State<ActivityCountdownTextView> {
|
|
|
|
|
|
|
|
String _twoDigits(int n) => n.toString().padLeft(2, '0');
|
|
String _twoDigits(int n) => n.toString().padLeft(2, '0');
|
|
|
|
|
|
|
|
|
|
+ /// 毫秒显示三位 (000–999)
|
|
|
|
|
+ String _threeDigitsMilli(int n) => n.toString().padLeft(3, '0');
|
|
|
|
|
+
|
|
|
@override
|
|
@override
|
|
|
Widget build(BuildContext context) {
|
|
Widget build(BuildContext context) {
|
|
|
- final hours = _twoDigits(_remaining.inHours);
|
|
|
|
|
final minutes = _twoDigits(_remaining.inMinutes.remainder(60));
|
|
final minutes = _twoDigits(_remaining.inMinutes.remainder(60));
|
|
|
final seconds = _twoDigits(_remaining.inSeconds.remainder(60));
|
|
final seconds = _twoDigits(_remaining.inSeconds.remainder(60));
|
|
|
|
|
+ final milliseconds =
|
|
|
|
|
+ _threeDigitsMilli(_remaining.inMilliseconds.remainder(1000));
|
|
|
|
|
|
|
|
return Row(
|
|
return Row(
|
|
|
mainAxisSize: MainAxisSize.min,
|
|
mainAxisSize: MainAxisSize.min,
|
|
|
children: [
|
|
children: [
|
|
|
- _buildTimeBox(hours),
|
|
|
|
|
- _buildSeparator(),
|
|
|
|
|
_buildTimeBox(minutes),
|
|
_buildTimeBox(minutes),
|
|
|
_buildSeparator(),
|
|
_buildSeparator(),
|
|
|
_buildTimeBox(seconds),
|
|
_buildTimeBox(seconds),
|
|
|
|
|
+ _buildSeparator(),
|
|
|
|
|
+ _buildTimeBox(milliseconds),
|
|
|
],
|
|
],
|
|
|
);
|
|
);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- /// 自定义时间数字块,2位合并显示
|
|
|
|
|
Widget _buildTimeBox(String text) {
|
|
Widget _buildTimeBox(String text) {
|
|
|
return Container(
|
|
return Container(
|
|
|
width: widget.timeItemWidth,
|
|
width: widget.timeItemWidth,
|
|
@@ -85,7 +87,6 @@ class _ActivityCountdownTxtViewState extends State<ActivityCountdownTextView> {
|
|
|
);
|
|
);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- /// 自定义分隔符(冒号),如果未设置就给默认间距
|
|
|
|
|
Widget _buildSeparator() {
|
|
Widget _buildSeparator() {
|
|
|
return widget.separator ??
|
|
return widget.separator ??
|
|
|
const SizedBox(
|
|
const SizedBox(
|