我有一个用于重置显示计时器和数字选择器值的重置按钮,但它没有重置数字选择器的值我该如何解决?

问题描述

Widget hourPicker() {
return Column(
  children: <Widget>[
    Padding(
      padding: EdgeInsets.only(bottom: 5.0),child: Text(
        "HH",style: TextStyle(fontSize: 20.0,fontWeight: FontWeight.bold),),NumberPicker.integer(
        // initialValue: initHour,initialValue: hour,minValue: 0,maxValue: 23,onChanged: (val) {
          setState(() {
            if (reset != reset) {
              val = 12;
            } else {
              hour = val;
            }
          });
        })
  ],);

}`

*这是一个数字选择器,我想在按下重置按钮时重置 Val 如何编写一个函数来重置它但不使用导航器

解决方法

一个好方法是使用一个在您按下重置按钮时触发的函数,然后您可以在 setState 中更改小时变量的值,因为根据您的代码,它只会检查您是否对数字执行任何操作选择器和更改被触发

resetPicker(){
  setState((){
    hour= 12;
  });
}

添加代码以触发您的按钮的重置功能,如下所示

RaisedButton(
  child: Text('Reset'),onPressed: ()  {resetPicker();}
)

您还必须像下面那样对 on 进行更改

NumberPicker.integer(
        initialValue: hour,minValue: 0,maxValue: 23,onChanged: (val) {
          setState(() {
            hour = val;
          });
        })

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...