我试图创建方形按钮,但扩展似乎不一样,因为它与容器。以下面的代码为例
new Expanded(
flex: 2,
child: new Column(
children: <Widget>[
new Expanded(
child:new Row(
children: <Widget>[
new Expanded(child: new MaterialButton(...)),
new Expanded(child: new MaterialButton(....)),
new Expanded(child: new Container(color: Colors.red)),
new Expanded(child: new Container(color: Colors.green)),
]
)
)
],
)
)
....
它显示两个水平展开但不垂直展开的按钮。与此同时,容器将水平和垂直地膨胀。如果我执行以下操作,也会产生同样的效果:
new Expanded(
flex: 2,
child: new Column(
children: <Widget>[
new Expanded(
child:new Column(
children: <Widget>[
new Expanded(child: new MaterialButton(...)),
new Expanded(child: new MaterialButton(....)),
new Expanded(child: new Container(color: Colors.red)),
new Expanded(child: new Container(color: Colors.green)),
]
)
)
],
)
)
....
在这里我把行改成了列。按钮将垂直展开,但不会水平展开,而容器将同时进行这两种操作。
有没有办法让我的按钮扩展到垂直和水平方向都适合它们的父级?
9条答案
按热度按时间mwngjboj1#
将
crossAxisAlignment
属性添加到您的Row
;xpcnnkqh2#
使用
ButtonTheme
和minWidth: double.infinity
Package 允许提供约束或https://github.com/flutter/flutter/pull/19416着陆后
wtzytmuj3#
在Flutter 2.+中,考虑以下解决方案:
new9mtju4#
我们可以添加按钮内部容器。
解决方案:
p5fdfcr15#
你也可以试试
1.使用
SizedBox
1.使用
MaterialButton
的minWidth
属性。i5desfxk6#
可以在“子项:列”下插入
交叉轴对齐:CrossAxisAlignment.stretch
我的代码
我的结果
l0oc07j27#
供参考https://api.flutter.dev/flutter/widgets/MediaQuery-class.html
iovurdzv8#
从文档和使用按钮主题与
styleFrom
实用程序静态方法,你可以这样写代码:kq0g1dla9#
VisualDensity
是你正在寻找的东西。将其添加到ButtonStyle
对象。