Par*_*eri 3 flutter flutter-layout
我想重新排序我的列表,但出现此错误。该小部件的所有子项都必须在可重新排序列表视图中拥有一个键
Widget list(list) {
return Scrollbar(
child: ReorderableListView(
header: null,
onReorder: _onReorder,
padding: const EdgeInsets.symmetric(vertical: 8.0),
children: <Widget>[
ListView.builder(
itemCount: list.length,
shrinkWrap: true,
itemBuilder: (contex, index) {
return _singleToDoWidget(list[index], index);
},
)
]),
);
}
Run Code Online (Sandbox Code Playgroud)
用于key唯一标识列表中的每个项目,因为您将移动它们。
你可以这样做:
ReoderableListView(
header: null,
onReorder: _onReorder,
children: [
for(var i; i < list.length; i++) {
Container(
key: ValueKey(list[index]),
child: _singleToDoWidget(list[index], index),
}
],
);
Run Code Online (Sandbox Code Playgroud)
或者您可以在小部件函数本身中指定key。
Widget _singleToDoWidget(String title, int index) {
return YourRootWidget(
key: ValueKey(title),
...
),
}
Run Code Online (Sandbox Code Playgroud)
只是想说明您的实施以及 key 将去向
| 归档时间: |
|
| 查看次数: |
6376 次 |
| 最近记录: |