全部!
我想使用 Dismissible 小部件删除任务。
我尝试以下
onDismissed: (direction) {
DatabaseHelper.instance.deleteTask(task.id);
_updateTaskList();
},
它可以工作,但动画看起来不对,好像被解雇的孩子重新出现了一秒钟然后消失了。
我认为正在发生的事情是deleteTask
有延迟并且_updateTaskList
几乎同时运行。
这是我的方法:
Future<int> deleteTask(int id) async {
Database db = await this.db;
final int result = await db.delete(
tasksTable,
where: '$colId = ?',
whereArgs: [id],
);
return result;
}
}
_updateTaskList() {
setState(() {
_taskList = DatabaseHelper.instance.getTaskList();
});
}
Future<List<Task>> getTaskList() async {
final List<Map<String, dynamic>> taskMapList = await getTaskMapList();
final List<Task> taskList = [];
taskMapList.forEach((taskMap) {
taskList.add(Task.fromMap(taskMap));
});
return taskList;
}