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)