我正在使用加载包在获取某些数据时显示加载屏幕。看来效果很好,但是我在控制台中看到以下错误:
[ERROR:flutter/lib/ui/ui_dart_state.cc(148)] Unhandled Exception: 'package:flutter/src/animation/animation_controller.dart': Failed assertion: line 671 pos 7: '_ticker != null': AnimationController.animateWith() called after AnimationController.dispose()
在调用dispose之后不应使用AnimationController方法。
Widget getLoadingBar() {
return new Container(
color: Colors.blue
child: Center(
child: Loading(indicator: BallPulseIndicator(), size: 100.0),
),
);
}
return MaterialApp(
home: Scaffold(
body: Container(
decoration: BoxDecoration(
gradient: new LinearGradient(colors: [Colors.yellow, Colors.blue, Colors.red, Colors.yellow], begin: Alignment.topCenter, end: Alignment.bottomCenter, tileMode: TileMode.clamp),
),
child: dataFetched ? getContent() : getLoadingBar(),
)
),
);
异步获取完成后,setState调用中的dataFetched bool设置为true。
预先感谢
答案 0 :(得分:0)
1。您必须处置自己的AnimationController或任何其他控制器。
void dispose(){
_animationController.dispose();
}
2。如果您在程序中调用setState,则将其包装成这样。
if(this.mounted){
setState((){
// your code .....
});