Nar*_*rek 5 listviewitem rendercontrol dart flutter
ListView当您根据默认行为插入/删除/重新排序(或执行任何其他操作)项目时ListView.builder,ListView.separated它总是会重建整个小部件。
我怎样才能避免这种情况?它会带来不良结果,例如数据丢失。
Nar*_*rek 10
您可以通过设置属性来代替使用ListView.builder或ListView.separated使用ListView.customfindChildIndexCallback
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);
},
),
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5231 次 |
| 最近记录: |