![](/img/trans.png)
[英]How to use refresh indicator inside a futurebuilder in flutter
[英]Use custom dialogs in Flutter FutureBuilder waiting
试试这个
在ConnectionState.waiting
之前调用这个onLoading(context);
然后
if(ConnectionState. done){
Navigator.pop();
}
void onLoading(BuildContext context) {
showDialog(
context: context,
barrierDismissible: false,
builder: (BuildContext context) {
return Center(child: CircularProgressIndicator(color: Colors.blue));
});
}
不幸的是,无法使用 object 方向禁用警报对话框,并且我在单独的页面上设计了对话框,并且 Navigator.pop() 不起作用,但是通过这种方法,我达到了我想要的结果。
FutureBuilder(
future: _futureEditName,
builder: (context,snapshot){
if(snapshot.connectionState == ConnectionState.waiting){
ShowWaitingDialog(context,true);
}else if(snapshot.connectionState == ConnectionState.done && snapshot.hasData){
ShowWaitingDialog(context,false)
}
}
);
显示和关闭警报对话框
ShowWaitingDialog(BuildContext context,bool show) {
showDialog(
context: context,
builder: (context) {
return show == true ?
AlertDialog(
insetPadding: const EdgeInsets.all(20),
alignment: Alignment.center,
title: Container(
width: double.maxFinite,
child: Column(
textDirection: TextDirection.rtl,
children: [
Row(
textDirection: TextDirection.rtl,
children: [
const SpinKitCircle(
color: Colors.lightBlue,
size: 35,
),
const SizedBox(width: 20,),
Container(
alignment: Alignment.center,
child: const Text(
'please wait',
style: TextStyle(
color: kGraydark,
fontSize: 15,
),
),
),
],
),
],
),
),
)
: FutureBuilder(builder: (context, snapshot) {
Navigator.of(context).pop();
Navigator.of(context).pop();
return Container();
},);
},);
}
Navigator.of(context).pop() It must be called twice
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.