flutter - Flutter:如何只用它的一个孩子覆盖整个 Column
问题描述
我有一列有多个子元素,它们是Flexible
具有不同flex
值的小部件。(我的实际实现对于嵌套的行/列更复杂,但找到这个简单案例的解决方案会有所帮助)
当我以编程方式更改值时,孩子们可以通过开箱即用的漂亮动画Flex
很好地适应他们的父母。我可以轻松地将它们变高/变短。
但是,当我希望其中一个孩子自己覆盖所有内容Column
并flex=0
为其他孩子设置时,它不起作用。在文档中它说设置flex
或0
意味着null
小Flexible
部件不再“灵活”
我该怎么做呢?欢迎任何想法。
从图中可以看出:我想将绿色区域的 flex 值从 3 设置为 0,并且只能看到覆盖整个屏幕的蓝色区域。
解决方案
截屏:
但是,您可以使用Flexible
而不是Expanded
第二个孩子,这也可以。
代码:
@override
Widget build(BuildContext context) {
int flex1 = 1, flex2 = 0;
return Scaffold(
appBar: AppBar(),
body: Column(
children: <Widget>[
Expanded(
flex: flex1,
child: Container(
color: Colors.blue,
height: 100,
alignment: Alignment.center,
child: Text("Flex: $flex1", style: TextStyle(fontSize: 32, fontWeight: FontWeight.bold)),
),
),
Expanded( // you can use Flexible also
flex: flex2,
child: flex2 == 0 ? SizedBox() : Container(
color: Colors.green,
alignment: Alignment.center,
child: Text("Flex: $flex2", style: TextStyle(fontSize: 32, fontWeight: FontWeight.bold)),
),
),
],
),
);
}
推荐阅读
- vmware-workstation - 如何修复变成黑屏的 VMWare 工作站
- c# - 如何修复我的项目中的所有非空警告
- discord - 在 discord v.13 (discord.js) 中具有权限功能
- php - php mail() 函数在本地无法在 wamp 上运行?
- excel - 在 Excel 中启用标题过滤器和排序的单元格更改事件时锁定特定列
- amazon-web-services - 生成 lwa 刷新令牌在卖家中央仪表板中不起作用
- gradle - 在 gitlab 中使用 gradle 的 Spotbugs (findsecbug)
- python-3.x - 在 POST 函数中实现线程
- c# - 使用单个绑定文本框更改多个数据表条目
- sql - 从 CockroachDB 中删除交错表时有哪些潜在问题?