Flutter 每次颤振图像小部件都会进入errorBuilder函数
我正在使用图像小部件和errorBuilder,只要错误发生一次,它就会在此后每次进入errorBuilder,无论它是否包含错误,我只想在错误发生时进入errorBuilderFlutter 每次颤振图像小部件都会进入errorBuilder函数,flutter,Flutter,我正在使用图像小部件和errorBuilder,只要错误发生一次,它就会在此后每次进入errorBuilder,无论它是否包含错误,我只想在错误发生时进入errorBuilder class GirlWidgetState extends State<GirlWidget> { String _imgUrl = "https://uploadbeta.com/api/pictures/random/?key=%E6%8E%A8%E5%A5%B3%E9%83%8E&am
class GirlWidgetState extends State<GirlWidget> {
String _imgUrl = "https://uploadbeta.com/api/pictures/random/?key=%E6%8E%A8%E5%A5%B3%E9%83%8E&random=96831";
void refreshGirl() {
print('触发刷新动作');
var rmd = new Random();
setState(() {
_imgUrl = 'https://uploadbeta.com/api/pictures/random/?key=%E6%8E%A8%E5%A5%B3%E9%83%8E&random=${rmd.nextInt(100000)}';
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('看个美女APP'),
),
body: Container(
child: Image.network(_imgUrl,loadingBuilder: (BuildContext context,Widget child,ImageChunkEvent chunkEvent){
if(chunkEvent==null) {
return child;
}
return Center(
child: CircularProgressIndicator(
value: chunkEvent.expectedTotalBytes!=null ? chunkEvent.cumulativeBytesLoaded/chunkEvent.expectedTotalBytes : null
),
);
},errorBuilder: (BuildContext context,Object info,StackTrace stackTrace) {
return Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text('图片加载失败',style: TextStyle(
fontSize: 24
),),
Icon(Icons.error,color: Colors.red,)
],
)
);
},)
),
floatingActionButton: FloatingActionButton(
tooltip: '换一张',
child: Icon(Icons.autorenew),
onPressed: refreshGirl,
),
);
}
}
类GirlWidgetState扩展状态{
字符串_imgUrl=”https://uploadbeta.com/api/pictures/random/?key=%E6%8E%A8%E5%A5%B3%E9%83%8E&random=96831";
虚空女孩(){
打印('触发刷新动作');
var rmd=新的随机变量();
设置状态(){
_伊姆古尔https://uploadbeta.com/api/pictures/random/?key=%E6%8E%A8%E5%A5%B3%E9%83%8E&random=${rmd.nextInt(100000)}';
});
}
@凌驾
小部件构建(构建上下文){
返回脚手架(
appBar:appBar(
标题:文本('看个美女APP'),
),
主体:容器(
子项:Image.network(_imgUrl,loadingBuilder:(BuildContext上下文,小部件子项,ImageChunkEvent chunkEvent){
if(chunkEvent==null){
返回儿童;
}
返回中心(
子对象:循环压缩机指示器(
值:chunkEvent.expectedTotalBytes!=null?chunkEvent.CumulativeBytes加载/chunkEvent.expectedTotalBytes:null
),
);
},errorBuilder:(构建上下文,对象信息,堆栈跟踪堆栈跟踪){
返回中心(
子:列(
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
文本('图片加载失败',样式:TextStyle(
字体大小:24
),),
图标(图标。错误,颜色:Colors.red,)
],
)
);
},)
),
浮动操作按钮:浮动操作按钮(
工具提示:'换一张',
子:图标(Icons.autorenew),
记者:女孩,
),
);
}
}
addprint(info)
在呼叫退货中心之前(…
)-您在日志上看到了什么?哦,对不起。此界面总是返回503,谢谢!您的欢迎:503服务不可用
在呼叫退货中心之前添加print(info)
(…
-您在日志上看到了什么?哦,对不起。此界面总是返回503,谢谢!欢迎:503服务不可用