gpt4 book ai didi

Flutter - 避免 ListView 重建

转载 作者:行者123 更新时间:2023-12-05 00:55:02 25 4
gpt4 key购买 nike

当您根据 ListView.builderListView.separated< 的默认行为插入/删除/重新排序(或进行任何其他操作)ListView 项时 它总是重建整个小部件。

我怎样才能避免这种情况?它会带来不希望的结果,例如数据丢失。

最佳答案

您可以通过设置 findChildIndexCallback 来使用 ListView.custom 而不是使用 ListView.builderListView.separated属性

ListView.custom(
key: Key('messageListView'),
controller: _scrollController,
reverse: true,
childrenDelegate: SliverChildBuilderDelegate(
(context, i) {
return Container(key: ValueKey('message-${message.id}'));
},
childCount: _messages.length,
findChildIndexCallback: (key) {
final ValueKey<String> valueKey = key;
return _messages
.indexWhere((m) => 'message-${m.id}' == valueKey.value);
},
),
);

关于Flutter - 避免 ListView 重建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65448441/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com