在 Flutter 中更新文本小部件

Ale*_*Ali 3 dart flutter

我是 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)

Nik*_*iya 7

如果你想更新 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)