在省道中的列表开头插入元素

我只是在 Flutter 创建一个简单的应用程序。我负责管理清单上的所有待办事项。我想在列表的开头添加任何新的待办任务。我可以用这种变通方法来达到这个目的。还有更好的办法吗?

void _addTodoInList(BuildContext context){
String val = _textFieldController.text;


final newTodo = {
"title": val,
"id": Uuid().v4(),
"done": false
};


final copiedTodos = List.from(_todos);


_todos.removeRange(0, _todos.length);
setState(() {
_todos.addAll([newTodo, ...copiedTodos]);
});


Navigator.pop(context);
}
67699 次浏览

Use

List.insert(index, value);

Use insert() method of List to add the item, here the index would be 0 to add it in the beginning. Example:

List<String> list = ["B", "C", "D"];
list.insert(0, "A"); // at index 0 we are adding A
// list now becomes ["A", "B", "C", "D"]

The other answers are good, but now that Dart has something very similar to Python's list comprehension I'd like to note it.

// Given
List<int> list = [2, 3, 4];
list = [
1,
for (int item in list) item,
];

or

list = [
1,
...list,
];

results in [1, 2, 3, 4]

I would like to add another way to attach element at the start of a list like this

 var list=[1,2,3];
var a=0;
list=[a,...list];
print(list);


//prints [0, 1, 2, 3]

Adding a new item to the beginnig and ending of the list:

List<String> myList = ["You", "Can", "Do", "It"];
myList.insert(0, "Sure"); // adding a new item to the beginning


// new list is: ["Sure", "You", "Can", "Do", "It"];


lastItemIndex = myList.length;


myList.insert(lastItemIndex, "Too"); // adding a new item to the ending
// new list is: ["You", "Can", "Do", "It", "Too"];

Better yet and in case you want to add more items :-

List<int> myList = <int>[1, 2, 3, 4, 5];
myList = <int>[-5, -4, -3, -2, -1, ...myList];