Я хотел создать простое приложение Todo с реализацией Material Design и AnimatedList. У меня не было проблем с вставкой элемента в AnimatedList, удаление элементов также было очень простым, за исключением случаев, когда я хочу удалить последний элемент из AnimatedList.
У меня есть отдельный класс ToDo, который содержит заголовок, описание, идентификатор и полный логический.
Исключение:
RangeError (index): Invalid value: Valid value range is empty: 0
Моя функция удаления элемента:
void _removeSingleItems(int index) {
int removeIndex = index;
AnimatedListRemovedItemBuilder builder = (context, animation) {
return item(animation, removeIndex);
};
_listKey.currentState.removeItem(removeIndex, builder);
tasksTodo.removeAt(removeIndex);
}
Виджет AnimatedList;
AnimatedList(
key: _listKey,
initialItemCount: tasksTodo.length,
itemBuilder: (context, index, animation) {
return item(animation, index);
})
У доктора флаттера все хорошо, и я тоже попробовал флаттер, но я не помог. Версия флаттера: Флаттер 1.12.13 + исправление.7
Полный код на Github: https://gist.github.com/Maciejfiedler/eb77de37a94458f0f4375dd56c053591