这是有状态窗口小部件的构建方法。 当我单击按钮时,我希望它最多可以计数10个。它只会在数字达到10时重建。为什么会这样,我该怎么解决?
int number = 0;
@override
Widget build(BuildContext context) {
return Scaffold(
body: RaisedButton(
onPressed: () {
while(number < 10) {
setState(() {
number = number += 1;
});
sleep(Duration(milliseconds: 100));
}
},
child: Text(number.toString()),
),
);
}
答案 0 :(得分:1)
您可以通过使用Future来实现。
int number = 0;
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: RaisedButton(
onPressed: () async {
while (number < 10) {
setState(() {
number = number += 1;
});
await Future.delayed(Duration(milliseconds: 100));
}
},
child: Text(number.toString()),
),
),
);
}