0

我在 Flutter 中有一个 Firebase 集合,我想在 reorderableListView 中拥有它。集合中的文档有一个“位置”字段,该字段应确定列表的顺序并在列表的重新排序时更新。

4

1 回答 1

0

我自己终于解决了。

onReorder: (oldIndex, newIndex) {
  setState(() {
    List<MyObjectClass> objectList =
        myObjects
            .data;
    if (newIndex > oldIndex) {
      newIndex -= 1;
    }

    final MyObjectClass
        myObject = objectList.removeAt(oldIndex);
    objectList.insert(newIndex, myObject);

    for (MyObjectClass o in objectList) {
      o.position = objectList.indexOf(o);
      DatabaseService()
          .updateMyObjects(
              o);
    }
  });
}

这是假设您在 DatabaseService() 类中有一个函数,该函数将 Firestore 集合映射到对象,然后在 StreamBuilder 中有 ReorderableListView,它将所述对象“myObjects”的快照传递给它。

于 2020-04-21T10:58:54.830 回答