flutter - 如何将 AnimatedContainer 设置为全宽?
问题描述
我正在努力学习制作动画。当按下按钮时,我有一个代码可以在 Button 和 CircularProgress 之间切换:
AnimatedContainer(
duration: Duration(milliseconds: 300),
curve: Curves.linear,
width: _isLoading ? 60 : 350,
height: 40.0,
child: Stack(
children: <Widget>[
Align(
alignment: Alignment.center,
child: AnimatedOpacity(
duration: Duration(milliseconds: 290),
curve: Curves.easeIn,
opacity: _isLoading ? 0.0 : 1.0,
child: SizedBox(
width: double.infinity,
child: MyOutlineButton(
label: constant.signIn,
onPressed: (){
_isLoading = true;
setState(() {});
Future.delayed(const Duration(milliseconds: 1000), () {
_isLoading = false;
setState(() {});
});
},
),
)),
),
Align(
alignment: Alignment.center,
child: AnimatedOpacity(
duration: Duration(milliseconds: 290),
curve: Curves.easeOut,
opacity: _isLoading ? 1.0 : 0.0,
child: Center(
child: CircularProgressIndicator(
backgroundColor: constant.colorWhite,
),
),
),
),
],
),
)
我想找到一个更好的解决方案来在显示 Button 时设置我的 AnimatedContainer 宽度。我想将其设置为全宽,而无需通过输入随机数来猜测或最大化数字(在代码中我将其设置为 350)。有一个更好的方法吗?谢谢你。
解决方案
您可以使用 MediaQuery.of(context).size.width 来获取设备的宽度。
推荐阅读
- javascript - 如何使用 JavaScript 修复错误的 HTML 表单?
- java - WebView Activity 在缺少 Chrome 包时崩溃
- antlr4 - 如何在 antlr 中解析数组?
- javascript - 如何在mongodb中更新数组中的值
- neural-network - 我可以使用具有非线性的堆叠自动编码器来训练 Word2vec 吗?
- http - HTTP 与管道的持久连接。TCP如何将多个文件划分为段
- ios - 从 AppDelegate 到 PresentedViewController 的警报:“尝试在...上呈现 UIAlertController 已经在呈现 UIAlertController”
- python-3.x - AttributeError:“ColumnTransformer”对象在 Python Scikit-learn 中没有属性“shape”
- sql - 在 SQL Server 中保持聚合列不变?
- javascript - 赛普拉斯:特定应该命令中的自定义超时