使用 AnimatedListView 使提供者的列表保持最新

Nol*_*nce 7 flutter flutter-animation

我正在使用该Provider库并有一个扩展ChangeNotifier. 这个类提供UnmodifiableListViewhistoricalRosters,以我的小部件。

我想创建一个AnimatedListView显示这些名册的。动画列表应该需要一个单独的列表,它会告诉小部件何时小部件进入或退出新列表项的动画。

final GlobalKey<AnimatedListState> _listKey = GlobalKey<AnimatedListState>();
Run Code Online (Sandbox Code Playgroud)

此示例使用模型同时更新附加到小部件状态的列表和 AnimateListState。

// Inside model
void insert(int index, E item) {
  _items.insert(index, item);
  _animatedList.insertItem(index);
}
Run Code Online (Sandbox Code Playgroud)

我想做同样的事情,但我无法思考如何做。也就是说,我可以更新由提供的列表provider并更改AnimatedListState.

小智 0

当您从小部件或其他地方调用 updateListAndAnimate 时,它​​应该确保 Provider 提供的列表和 AnimatedListState 同时更新。

导入'包:flutter/foundation.dart';

class YourChangeNotifierClass extends ChangeNotifier { 列表历史名册 = []; // 你的数据列表

// AnimatedListState key Final GlobalKey _listKey = GlobalKey();

// 更新列表和 AnimatedListState 的方法 void updateListAndAnimate(YourItemType newItem) { int index = HistoricalRosters.length;

// Update the data list
historicalRosters.add(newItem);

// Notify listeners to rebuild widgets using the updated list
notifyListeners();

// Update the AnimatedListState
_listKey.currentState?.insertItem(index);
Run Code Online (Sandbox Code Playgroud)

} }