import 'dart:async'; import 'package:app/utils/time.dart'; import 'package:flutter/material.dart'; class WaitingStart extends StatefulWidget { const WaitingStart({super.key}); @override State createState() => _WaitingStartState(); } class _WaitingStartState extends State { ///剩余秒 int _seconds = 0; Timer? _timer; @override void initState() { super.initState(); startCountDown(); } @override void dispose() { super.dispose(); _timer?.cancel(); _timer = null; } ///开始倒计时 void startCountDown() { //当前时间 DateTime now = DateTime.now(); //远端时间 DateTime remote = DateTime.parse("2025-11-19 17:10:00".replaceFirst(' ', 'T')); setState(() { _seconds = remote.difference(now).inSeconds; }); _timer = Timer.periodic(Duration(seconds: 1), (timer) { setState(() { _seconds--; }); if (_seconds <= 0) { _timer?.cancel(); _timer = null; _start(); } }); } ///倒计时结束开始 void _start() {} @override Widget build(BuildContext context) { return Align( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ Text( "未到开播时间,到点后自动开播", style: TextStyle(color: Colors.white), ), Container( margin: EdgeInsets.symmetric(vertical: 10), child: Text( formatSeconds(_seconds), style: TextStyle( color: Colors.white, fontSize: 26, fontWeight: FontWeight.bold, ), ), ), ], ), ); } }