flutter - 此小部件的所有子项都必须在 Reorderable Listview 中有一个键

标签 flutter flutter-layout

我想重新排序我的列表,但出现此错误。 此小部件的所有子项都必须在 Reorderable Listview 中有一个键

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);
              },
            )
          ]),
    );
}

最佳答案

用于唯一标识列表中的每个项目,因为您将移动它们。
你可以这样做:

ReoderableListView(
  header: null,
  onReorder: _onReorder,
  children: [
    for(var i; i < list.length; i++) {
      Container(
        key: ValueKey(list[index]),
        child: _singleToDoWidget(list[index], index),
    }
  ],
);

或者您可以在小部件函数本身中指定

Widget _singleToDoWidget(String title, int index) {
  return YourRootWidget(
    key: ValueKey(title),
    ...
  ),
}

只是试图说明您的实现以及 key 将去向

关于flutter - 此小部件的所有子项都必须在 Reorderable Listview 中有一个键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57805166/

相关文章:

Firebase 尚未正确初始化。您是否已将 "google-services.json"文件添加到项目中

flutter - 如何在 flutter 中制作自定义微调器?

flutter - 像 bootstrap 一样在 Flutter 中构建布局

arraylist - 如何创建数组列表类并在Flutter中获取数据

flutter - ffmpeg 似乎输出带有错误编解码器的视频?

flutter - 在Flutter中创建类似于github语言栏的栏

flutter - 更喜欢 const 文字作为 @immutable 类上构造函数的参数

flutter - 如何在 flutter 中创建水平和垂直可滚动的小部件

flutter - 如何在 flutter 中添加文本和轮播图片?

flutter - 根据最小尺寸包裹小部件,然后拉伸(stretch)它们以填充可用宽度