кто использовал Dismissible, чтобы удалить задачу из базы данных, используя flutter и sqlite? - PullRequest
0 голосов
/ 15 января 2020

Все!

Я хочу удалить задачу с помощью виджета «Отклонить».

Я пытаюсь выполнить следующее

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;
  }
...