我是 Flutter 新手,我遇到一个问题,因为我想使用从 Numbers() 函数传递的值更新 Text 小部件。
问题是当我按下按钮时,文本中的值在屏幕上不会改变,但在控制台中会改变。
class _HomeState extends State<Home> {
int n = 10;
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.deepPurpleAccent,
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(n.toString()),
RaisedButton(
onPressed: (){
n += numbers();
print(n.toString());
},
),
],
),
),
);
}
}
int numbers (){
List<int> numbersList = List(1);
numbersList[0] = 30;
int n1 = numbersList[0];
return n1;
print(numbersList[0].toString());
}
Run Code Online (Sandbox Code Playgroud)
如果你想更新 UI 那么你应该调用setState((){});flutter 中的方法。这个方法可以在StatefulWidget
您应该按以下方式实施
class _HomeState extends State<Home> {
int n = 10;
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.deepPurpleAccent,
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(n.toString()),
RaisedButton(
onPressed: () {
setState(() {
n += numbers();
});
},
),
],
),
),
);
}
}
int numbers() {
List<int> numbersList = List(1);
numbersList[0] = 30;
int n1 = numbersList[0];
return n1;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11135 次 |
| 最近记录: |