小编Jos*_*osh的帖子

调用 setState() 时 Flutter ListView 不会改变

我刚开始使用 Flutter/Dart,我很难理解为什么以下代码在 _updateResults() 调用 setState() 时不更新 ListView 内容。我什至添加了一个打印语句来显示内容,_results我可以看到项目正在添加到列表中,但显示永远不会更新。

class SearchHomePage extends StatefulWidget {
  SearchHomePage({Key key, this.title}) : super(key: key);

  final String title;

  @override
  createState() => _SearchHomePageState();
}

class _SearchHomePageState extends State<SearchHomePage> {
  List<Widget> _results = <Widget>[];

  @override
  void initState() {
    super.initState();
    _results.add(Text("testing"));
  }

  void _updateResults(String text) {
    setState(() {
      _results.add(Text(text));
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Column(children: [
        Container(
          child: TextField(
            onSubmitted: (String text) {
              _updateResults(text);
            },
          ),
        ), …
Run Code Online (Sandbox Code Playgroud)

dart flutter

5
推荐指数
2
解决办法
5219
查看次数

标签 统计

dart ×1

flutter ×1