dart 如何在flutter中添加项目到Map列表的特定索引中?

xvw2m8pv  于 2023-03-15  发布在  Flutter
关注(0)|答案(1)|浏览(139)

这是我的代码,我可以使用索引从列表中删除项目,现在我想将其插入到Map的特定索引中。

Map<String,bool> item_list = {
    " 077-231-0000": true,
    " 074-043-0000": true,
    " 077-572-0000": true,
  };

void reorderData(int oldindex, int newindex) {
    String key =  widget.item_list.keys.elementAt(oldindex);
    setState(() {
      if (newindex > oldindex) {
        newindex -= 1;
      }
      final items = widget.item_list.remove(key);
      widget.item_list.insert(newindex, items);
    });
  }

这就是字符串列表的实现方法,我想对Map做同样的事情。

final items = widget.item.removeAt(oldindex);
widget.item.insert(newindex, items);
u0sqgete

u0sqgete1#

DartMap不是ordinal数据集,因为它没有inherent order
但是,您可以执行类似以下操作:

void insert(Map<String, bool> itemsToInsert, int index) {
  var keys = item_list.keys.toList();
  var values = item_list.values.toList();

  for (var entry in itemsToInsert.entries) {
    keys.insert(index, entry.key);
    values.insert(index, entry.value);

    index++;
  }

  item_list = Map.fromIterables(keys, values);
}

相关问题