하위 애니메이션 스위처가있는 부모 소비자가 있습니다. 공급자의 값이 변경되면 크로스 페이드 애니메이션이있을 것으로 예상했지만 애니메이션은 발생하지 않습니다! 여기서 무엇이 잘못 되었습니까? 내 코드는 다음과 같습니다.
@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를 올바르게 업데이트하는 방법을 모릅니다. 필요한 경우 추가 코드를 제공 할 수 있습니다.
문서에서 지정한 AnimatedSwitcher
대로의 잠재적 인 하위 항목에 키를 제공해야합니다 . 애니메이션이 가끔 작동한다면 반환되는 정확한 위젯 유형이 다르기 때문일 수 있습니다. 위젯 유형이 동일한 경우 flutter는 하위 위젯의 변경을 감지하는 키가 필요합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다