0

全部!

我想使用 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;
  }
4

0 回答 0