flutter 如何在ListView.builder中使用ReorderableListView

pftdvrlh  于 2023-03-24  发布在  Flutter
关注(0)|答案(1)|浏览(143)

我正在尝试使我的列表可重新排序,我已经遵循了一些使用ReorderableListView的教程,但它不适用于我正在使用的列表类型。我该怎么办?
ReorderableListView之前的代码

body: ListView.builder(
    itemCount: db.toDoList.length,
    itemBuilder: (context, index) {
      return toDoTile(
        taskName: db.toDoList[index][0],
        taskCompleted: db.toDoList[index][1],
        onChanged: (value) => checkBoxChanged(value, index),
        deleteFunction: (context) => deleteTask(index),
        editTask: (context) => editTask(index),
      );

当我在ReorderableListView上做教程时,我最终得到了这个:

body: ReorderableListView(
    children: [
      for (final tile in myTiles)
        ListTile(
          key: ValueKey(tile),
          title: Text(tile),
        )
    ],
    onReorder: (oldIndex, newIndex) => updatMyTiles(oldIndex, newIndex),
  ),

但问题是我如何将两者结合起来实施?

qij5mzcb

qij5mzcb1#

您可以使用以下命令:
https://api.flutter.dev/flutter/material/ReorderableListView/ReorderableListView.builder.html
合并后,它看起来像这样:

ReorderableListView.builder(
    itemCount: db.toDoList.length,
    itemBuilder: (context, index) {
      return toDoTile(
        taskName: db.toDoList[index][0],
        taskCompleted: db.toDoList[index][1],
        onChanged: (value) => checkBoxChanged(value, index),
        deleteFunction: (context) => deleteTask(index),
        editTask: (context) => editTask(index),
      );
    },
    onReorder: (oldIndex, newIndex) => updatMyTiles(oldIndex, newIndex),

我个人在我的模型上有一个属性,它有自己的索引,所以我可以保存它的状态。

相关问题