我有一个使用子级动画切换器的父级消费者,我希望当提供者的值发生更改时,会出现一些淡入淡出的动画,但是没有动画发生!这里出了什么问题?这是我的代码:
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.white,
body: _buildContent(context),
);
}
Widget _buildContent(BuildContext context) {
return Consumer<HomeProvider>(
builder: (context, homeProvider, child) {
return AnimatedSwitcher(duration: Duration(milliseconds: 300),
child: _getAnimatedWidget(homeProvider, context),
);
},
);
}
这是_getAnimatedWidget方法:
Widget _getAnimatedWidget(HomeProvider homeProvider, BuildContext context){
switch (homeProvider.homeResponse.status) {
case Status.COMPLETED:
return _buildHomeScreen(context, homeProvider);
case Status.ERROR:
return _parseError(context, homeProvider);
case Status.LOADING:
return _parseLoading(context);
default:
return Container();
}
}
请帮帮我!我仍然不知道如何正确地用动画更新UI。如果需要,我可以提供其他代码。
答案 0 :(得分:0)
您需要提供docs 指定的AnimatedSwitcher
潜在子代的密钥。如果动画有时起作用,则可能是因为返回的确切窗口小部件类型不同。如果窗口小部件类型相同,则flutter需要按键来检测子窗口小部件中的更改。