小编Cla*_*ler的帖子

Flutter AnimatedList 与提供者模式

我有实现 ChangeNotifier 的模型

class DataModel with ChangeNotifier{
   List<Data> data = List<Data>();

   void addData(Data data){
      data.add(data);
      notifyListeners();
   }
}
Run Code Online (Sandbox Code Playgroud)

以及一个监听这些变化的 ListView:

class DataListView extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Consumer<DataModel>(
      builder: (context, model, child) {
        return ListView.builder(
          itemCount: model.data.length,
          itemBuilder: (context, index) {
            return Text(model.data[index].value);
          },
        );
      },
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

到目前为止一切顺利,当一个项目添加到模型中的列表时,更改通知会触发 Listview 的重建,我会看到新数据。但是我无法将它与 AnimatedList 而不是 ListView 一起使用。最好我喜欢保持我的模型原样,因为动画是 ui 的问题,而不是我的逻辑。

changenotifier 总是为我提供最新版本的数据,但我真正需要的是“添加项目”或“删除项目”通知。

有没有这样做的最佳实践方法?

provider flutter flutter-animatedlist

9
推荐指数
1
解决办法
635
查看次数

标签 统计

flutter ×1

flutter-animatedlist ×1

provider ×1