在列表中具有小部件的Flutter ListView不会在应更新的时候更新

时间:2020-04-18 14:14:07

标签: listview flutter dart setstate

我试图将要由ListView构建的小部件存储在这样的全局列表中:

List<Widget> globalList= [];

我正在尝试在有状态类的状态下构建Listview:

ListView(
  children: globalList
)

现在,当将项目添加到列表时,我每次尝试渲染此Listview。我为此使用的功能是:

void addList(){
    setState((){
      Widget _widget = new Widget();
      list.add(_widget);
    });

小部件(在我的伪代码中称为_widget)也是有状态小部件。但是,当我致电addList时,我的有状态小部件不会更新。为什么?

简化(伪)代码:

List<Widget> globalList = [];

class STFUL extends StatefulWidget{

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

class _STFULState extends State<STFUL>{
  void addList(){
    setState((){
      Widget _widget = new Widget();
      globalList.add(_widget);
      });
@override
Widget build(BuildContext context) {
  return Scaffold(
    body:ListView(
      children: globalList
    )
  }  
} 

下面有一个按钮来调用addList。我的问题是,当我调用setState时,ListView不会呈现更新的列表。

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

使用ListView.Builder代替您的ListView