【问题标题】:Countdown timer in flutter颤动中的倒数计时器
【发布时间】:2020-06-18 17:53:12
【问题描述】:

我想做一个flutter倒计时来显示剩余注册时间(DD-HH-MM)。

例子:

最有效的方法是什么?

谢谢

【问题讨论】:

    标签: flutter timer widget


    【解决方案1】:

    根据您的设计和要求更改以下代码

    DateTime startTime = DateTime(2020,03,04);
      Duration remaining = DateTime.now().difference(DateTime.now());
      Timer t;
      int days=0,hrs =0, mins=0;
    
      @override
      void initState(){
        super.initState();
        startTimer();
      }
    
      startTimer()async{
        t = Timer.periodic(Duration(seconds:1),(timer){
          setState((){
          remaining = DateTime.now().difference(startTime);
            mins = remaining.inMinutes;
            hrs = mins>=60 ? mins~/60:0;
            days = hrs>=24 ? hrs~/24: 0;
            hrs = hrs%24;
            mins = mins%60;
          });
    
        });
      }
    
      @override
      Widget build(BuildContext context) {
        return Scaffold(
            backgroundColor: Colors.white,
            body: Center(
                child: Column(
              mainAxisSize: MainAxisSize.min,
              children: <Widget>[
                Padding(
                  padding: const EdgeInsets.all(8.0),
                  child: Text('Registration closes in',
                      style: TextStyle(color: Colors.black, fontSize: 20),
                      textAlign: TextAlign.center),
                ),
                Row(
                  mainAxisAlignment:MainAxisAlignment.spaceEvenly,
                  children: [
                  Expanded(
                    child: Padding(
                      padding: const EdgeInsets.all(8.0),
                      child: Text('$days',
                          style: TextStyle(color: Colors.black, fontSize: 20),
                                 textAlign:TextAlign.center,),
                    ),
                  ),
                  Expanded(
                    child: Padding(
                      padding: const EdgeInsets.all(8.0),
                      child: Text('$hrs',
                          style: TextStyle(color: Colors.black, fontSize: 20),
                                 textAlign:TextAlign.center,),
                    ),
                  ),
                  Expanded(
                    child: Padding(
                      padding: const EdgeInsets.all(8.0),
                      child: Text('$mins',
                          style: TextStyle(color: Colors.black, fontSize: 20),
                                 textAlign:TextAlign.center,),
                    ),
                  ),
                ]),
                Row(
                  mainAxisAlignment:MainAxisAlignment.spaceEvenly,
                  children: [
                  Expanded(
                    child: Padding(
                      padding: const EdgeInsets.all(8.0),
                      child: Text('Days',
                          style: TextStyle(color: Colors.black, fontSize: 16),
                                 textAlign:TextAlign.center,),
                    ),
                  ),
                  Expanded(
                    child: Padding(
                      padding: const EdgeInsets.all(8.0),
                      child: Text('Hours',
                          style: TextStyle(color: Colors.black, fontSize: 16),
                                 textAlign:TextAlign.center,),
                    ),
                  ),
                  Expanded(
                    child: Padding(
                      padding: const EdgeInsets.all(8.0),
                      child: Text('Minutes',
                          style: TextStyle(color: Colors.black, fontSize: 16),
                                 textAlign:TextAlign.center,),
                    ),
                  ),
                ]),
              ],
            )));
      }
    

    【讨论】:

      猜你喜欢
      • 2019-07-03
      • 2019-08-18
      • 2022-11-20
      • 2021-10-28
      • 2020-05-13
      • 1970-01-01
      • 2015-12-20
      • 1970-01-01
      相关资源
      最近更新 更多