Я хочу иметь AnimatedList, который разворачивается сверху вниз, когда я получаю Данные из StreamBuilder, но я не могу заставить его работать.
Это мой код:
class _TransferListState extends State<TransferList> {
final GlobalKey<AnimatedListState> _animatedListKey = GlobalKey<AnimatedListState>();
@override
Widget build(BuildContext context) {
return StreamBuilder(
stream: DatabaseService().transfers,
builder: (BuildContext context, AsyncSnapshot builderSnapshot) {
switch (builderSnapshot.connectionState) {
case ConnectionState.waiting:
...
default:
if (builderSnapshot.hasError) {
...
} else {
return AnimatedList(
key: _animatedListKey,
physics: BouncingScrollPhysics(),
itemCount: _dateMap.length,
itemBuilder: (
BuildContext context,
int dayindex,
Animation<double> animation
) {
return Column(
children: <Widget>[
//Headercontainer
Container(
...
),
//Tilecontainer
Container(
...
child: ListView.builder(
physics: ClampingScrollPhysics(),
shrinkWrap: true,
itemCount: _dateMap[_dateMap.keys.toList()[dayindex]].length,
itemBuilder: (BuildContext context, int index) {
return TransactionTile( <-- i want these widgets to unfold from top to bottom
transfer: _dateMap[_dateMap.keys.toList()[dayindex]][index],
);
},
),
),
SizedBox(height: 20)
],
);
},
);
}
}
},
);
}
}
Я попытался обернуть Fadetransition внутри Widgettree, а также передать значение «animation» в виджет «TransactionTile», чтобы анимировать его внутри другого виджета, но ничего не помогло.
Когда я пытаюсь напечатать "анимацию" из метода построителя AnimatedList, я получаю kAlwaysCompleteAnimation, и его .value всегда равен 1.0, почему это так?
Каков правильный путь к реализовать это?