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

时间:2019-04-12 08:02:26

标签: dart flutter

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

一段时间后,我想在Hello 1的顶部插入一个有状态的窗口小部件,上面写着ListView.separated

我希望ListView.separated显示Hello 1Hello 2Hello 3

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

如果我使用无状态窗口小部件,那么所有这些都可以正常工作。如果我使用StatefulWidget,则订单会混乱,小部件也会重复。

1 个答案:

答案 0 :(得分: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()方法。