Flutter - 如何在ListView.separated的顶部插入有状态小部件?

问题描述 投票:0回答:1

我有一个ListView.separated,最初包含两个有状态的小部件,说:Hello 2Hello 3

过了一段时间,我想插入一个状态小部件,说Hello 1ListView.separated的顶部。

我期待ListView.separated展示Hello 1Hello 2Hello 3

不幸的是,当我这样做时,Hello 3被重复而不是Hello 1被添加到ListView.separated的顶部。它现在显示Hello 2Hello 3Hello 3

如果我使用无状态小部件,所有这一切都可以正常工作。如果我使用StatefulWidget,订单会搞砸,小部件会被复制。

dart flutter
1个回答
0
投票

你可以试试这个。

bool _condition = false;

Widget build(context) {
  return ListView(
    children: <Widget>[
      _condition ? yourNewWidget : Container(),
      ListView.separated(
        shrinkWrap: true, // needed 
        physics: ClampingScrollPhysics(), // needed 
        itemBuilder: (c, i) => Text("Text = ${i}"),
        separatorBuilder: (c, i) => Divider(),
        itemCount: 100,
      )
    ],
  )
}

当你有一个newWidget并准备好,请确保你调用setState(())来更新build()方法。

© www.soinside.com 2019 - 2024. All rights reserved.