Flutter - 如何在 Listview 构建器顶部添加项目?

Posted

技术标签:

【中文标题】Flutter - 如何在 Listview 构建器顶部添加项目?【英文标题】:Flutter - How to add items on the top of a Listview builder? 【发布时间】:2020-11-18 18:59:56 【问题描述】:

我的应用上有一个Listview.builder,用于在我的游戏中添加玩家。正如我在 gif 中显示的那样:

我想要做的是,而不是在播放器“test”下添加播放器“test2”,我想将它添加到他之上...我尝试了reverse 方法,但如果我这样做, Listview 从屏幕底部开始...

你有什么办法解决这个问题吗?

这是我的代码:

      body: ListView.builder(
          itemCount: Provider.of<PlayerProvider>(context).getPlayerList.length,
          itemBuilder: (context, index) 
            return Column(
              children: [
                PlayerDismissible(index),
                Divider(
                  color: Colors.orange,
                  height: 0,
                )
              ],
            );
          ),
      bottomSheet: BottomPlayerBar(),

【问题讨论】:

【参考方案1】:

当您将新玩家添加到列表中时,您可以使用List 上的insert 方法将新玩家添加为列表中的第一个,例如..

Player newPlayer = Player('name');
playersList.insert(0, newPlayer);

【讨论】:

我现在感觉很傻,我没有想过这个解决方案,谢谢!【参考方案2】:

添加到列表的顶部效率不高,因为它需要将列表的所有剩余项目向右移动。只需通过add()添加到列表中,并通过反转索引获取项目:

PlayerDismissible(length - index - 1)

【讨论】:

以上是关于Flutter - 如何在 Listview 构建器顶部添加项目?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Flutter ListView 的构建过程中测试 json 属性是不是存在

如何使用提供程序在 Flutter ui 中使用 api 响应获取 ListView 构建器数据

Flutter - 如何更新用于构建 ListView 的 Future/List 的状态(或值?)(通过 FutureBuilder)

Flutter ListView 在构建时滚动到底部

如何在 Flutter 中添加 ListView.builder 的填充顶部?

如何在 Flutter 的 ListView 中添加列?