flutter - 使用循环进度指示器时底部溢出
问题描述
使用循环进度指示器时,我一直在底部溢出。我试图遵循这一点,但它似乎不起作用。
正在发生的事情的图片:
所以当按钮被按下时会发生什么,它会显示加载符号并缩小(动画)到上面的大小。现在,当我使用具有大屏幕的模拟器(例如像素 2xl)但使用较小屏幕的模拟器时,它可以完美运行,我看到底部溢出。
这是我的代码:
// Button
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: blue,
body:
SingleChildScrollView(
child: Center(
child:Stack(
children: <Widget>[
Align(
alignment: Alignment.center,
child: Container(
height: MediaQuery.of(context).size.height,
width: MediaQuery.of(context).size.width,
decoration: BoxDecoration(
image: DecorationImage(
image: AssetImage(
"assets/images/FlightBackground.jpg",
),
fit: BoxFit.fitHeight,
),
)
),
),
Align(
alignment: Alignment.center,
child: Container(
height: MediaQuery.of(context).size.height,
width: MediaQuery.of(context).size.width,
decoration:BoxDecoration(color: blueTrans),),
),
Align(
alignment:Alignment.center,
child: Container(
height: MediaQuery.of(context).size.height,
width: MediaQuery.of(context).size.width/1.2,
child: Column(
children: <Widget>[
// omitted code ----- the button starts here
Expanded(
flex:2,
child: Container(
width: _submitWidth,
child: PhysicalModel (
color: _submitModelColor,
borderRadius: BorderRadius.circular(10.0),
child: RaisedButton(
color: _submitButtonColor,
key: _submitKey,
shape: OutlineInputBorder(borderSide:BorderSide(color: _submitOutlineColor),borderRadius: BorderRadius.circular(10.0)),
child: _submitButton(),
onPressed: (){
setState(() {
if(_submitState == 0 && (_validate())) {
_animateButton();
}
});
},
),
)
),
),
]
),
),
),
],
)
)
)
);
}
// What the button is with respect to _submitState
Widget _submitButton(){
if (_submitState == 0) {
return AutoSizeText(FLIGHT_PAGE_SUBMIT,style: TextStyle(color: _submitTextColor,));
} else if (_submitState == 1) {
return Center(
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
SizedBox(
child: Center(
child:CircularProgressIndicator(
valueColor: AlwaysStoppedAnimation<Color>(white),
),
)
)
],
)
);
} // omitted code
}
更新:我试过只是返回中心
else if (_submitState == 1) {
return Center(
child:CircularProgressIndicator(
valueColor: AlwaysStoppedAnimation<Color>(white),
),
);
}
没有溢出,但进度指示器仍然超出了按钮空间:
更新:终于奏效了
else if (_submitState == 1) {
return Center(
child:SizedBox(
width:MediaQuery.of(context).size.width/13,
height:MediaQuery.of(context).size.height/30,
child:CircularProgressIndicator(
valueColor: AlwaysStoppedAnimation<Color>(white),
)
)
);
}
解决方案
推荐阅读
- apache-spark - Aggregating scattered files in Spark
- linux - 为什么超过 50 个用户在 Jmeter FTP 请求 (Linux vsftpd) 中出现高达 99% 的错误?
- python - figure() 和 add_axes() 有什么区别?
- c# - 图表的主要网格和标签设置为十进制值
- asp.net-mvc - Azure AD 多租户身份验证 - ASP.NET MVC 5
- javascript - 将变量从模板传递到 django 中的视图
- javascript - 我希望我的图片像 Facebook 和 Instagram 一样“讨人喜欢”。但它不起作用
- javascript - 我得到编译器错误:我写 npm start > 错误:./node_modules/jquery-ui/themes/base/autocomplete.css
- javascript - 可以在不通过 Javascript 重新加载页面的情况下返回上一页吗?
- java - 如何从 Android 的内置导航抽屉中打开 Activity