Flutter 重置WheelChooser小部件初始值
套餐: 问题:软件包没有用于重置或重新分配值的键和/或控制器 问题:如何实现WheelChooser小部件的重置按钮?我目前正在将值重新指定为零,并导航到动画持续时间为零的页面。我的问题是,我还有一个FutureBuilder显示电池电量,每次按下重置按钮时都会重新生成。是否有任何方法可以在不刷新整个页面的情况下重置此WheelChooser小部件的值 代码示例:Flutter 重置WheelChooser小部件初始值,flutter,dart,Flutter,Dart,套餐: 问题:软件包没有用于重置或重新分配值的键和/或控制器 问题:如何实现WheelChooser小部件的重置按钮?我目前正在将值重新指定为零,并导航到动画持续时间为零的页面。我的问题是,我还有一个FutureBuilder显示电池电量,每次按下重置按钮时都会重新生成。是否有任何方法可以在不刷新整个页面的情况下重置此WheelChooser小部件的值 代码示例: WheelChooser.integer( initValue: Clock
WheelChooser.integer(
initValue: Clock().timerHours ?? 0,
magnification: 1.7,
listHeight: 150,
itemSize: 30,
squeeze: 0.75,
listWidth: 100,
onValueChanged: (hours) {
setState(() {
Clock().timerHours = hours;
});
Clock.save();
},
maxValue: 23,
minValue: 00,
isInfinite: true,
),
我的解决方案:刷新页面。i、 e
// The only way to reset the wheel values to zero is to
// reassign the init values and rebuild the page.
// TODO: Any other way of doing this?
if (Clock().timerHours != 0 ||
Clock().timerMinutes != 0 ||
Clock().timerSeconds != 0) {
Clock().timerHours = 0;
Clock().timerMinutes = 0;
Clock().timerSeconds = 0;
Navigator.of(context).pushAndRemoveUntil(
PageRouteBuilder(
pageBuilder: (_, __, ___) => Home(
pageIndex: 3,
),
transitionDuration: Duration(seconds: 0),
),
(Route<dynamic> route) => false);
}
//将控制盘值重置为零的唯一方法是
//重新分配初始值并重新生成页面。
//托多:还有别的方法吗?
如果(时钟().timerHours!=0||
时钟().timerMinutes!=0||
时钟().timerSeconds!=0){
时钟().timerHours=0;
时钟().timerMinutes=0;
时钟().timerSeconds=0;
Navigator.of(context).pushandremoveintil(
PageRouteBuilder(
页面生成器:(\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu)=>主页(
页面索引:3,
),
过渡持续时间:持续时间(秒:0),
),
(路由)=>false);
}
您可以尝试:
- 创建一个自定义StatefulWidget,其中包含WheelChooser和重置它的算法
- 在算法中,用setState()替换PushAndRemoveTill以仅重建此小部件
initValue
。