Допустим, у меня есть список книг. Удаление книги по n-му индексу с использованием deleteAt
на самом деле не приводит к ее удалению и перемещению (n + 1) -го элемента на его место, а делает его null
. т.е. элемент в nth теперь равен null
.
Как выполнить deleteAt
идеально?
Кстати, я использовал удаление за пределами ValueListenableBuilder
.
ValueListenableBuilder(
valueListenable: Hive.box('books').listenable(),
builder: (context, box, _) {
if (box.values.length == 0)
return Center(
child: Text("No books"),
);
return ListView.builder(
primary: true,
padding: EdgeInsets.only(bottom: 95),
itemCount: box.values.length,
itemBuilder: (context, int index) {
Book book = box.get(index);
return Padding(
padding:
const EdgeInsets.only(bottom: kMasterPadding),
child: BookItem(
title: book.title,
author: book.authorName,
),
);
},
);
},
),
код удаления
() async {
await Hive.box("books").deleteAt(Hive.box("books").length - 2);
//deleted at last 2nd coz deleting at the end was working perfectly
},