use*_*218 5 layout button flutter
如何使以下按钮的宽度与最宽的按钮(在本例中是最后一个按钮)的宽度相同?我不想硬编码以使所有按钮等于最后一个按钮,因为,例如,当切换到不同的语言时,它可能不是最宽的最后一个按钮。
我正在使用的代码:
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Column(
children: [
Spacer(flex: 1),
Text(
'Flutter Test',
style: Theme.of(context).textTheme.headline1,
),
Spacer(flex: 2),
Row(
mainAxisSize: MainAxisSize.max,
children: [
Expanded(child:
Column(
children: [
ElevatedButton(
onPressed: () {
},
child: Text('Apple'),
),
ElevatedButton(
onPressed: () {
},
child: Text('Banana'),
),
ElevatedButton(
onPressed: () {
},
child: Text('Chery'),
),
ElevatedButton(
onPressed: () {
},
child: Text('Durian'),
),
ElevatedButton(
onPressed: () {
Navigator.pop(context);
},
child: Text('Emu apple fruit'),
),
],
),
),
],
),
Spacer(flex: 3),
],
),
),
);
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
首先,您不需要用于小部件的Row和小部件,因为它们没有意义。ExpandedColumn
现在,要实现您正在寻找的内容,可以通过Column使用小部件包装IntrinsicWidth小部件并设置Column(property: crossAxisAlignment: CrossAxisAlignment.stretch.
完整的代码应该是这样的:
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Column(
children: [
Spacer(flex: 1),
Text(
'Flutter Test',
style: Theme.of(context).textTheme.headline1,
),
Spacer(flex: 2),
IntrinsicWidth(
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
ElevatedButton(
onPressed: () {},
child: Text('Apple'),
),
ElevatedButton(
onPressed: () {},
child: Text('Banana'),
),
ElevatedButton(
onPressed: () {},
child: Text('Chery'),
),
ElevatedButton(
onPressed: () {},
child: Text('Durian'),
),
ElevatedButton(
onPressed: () {
Navigator.pop(context);
},
child: Text('Emu apple fruit'),
),
])),
Spacer(flex: 3),
],
),
),
);
}
Run Code Online (Sandbox Code Playgroud)
小智 0
由于ElevatedButton宽度根据小部件传递的子字符串的长度而变化Text,因此您可以在小部件中包含与所有“sizedbox”具有相同宽度的提升按钮SizedBox,以使所有按钮都具有相同的宽度。
SizedBox(width: 200, child: ElevatedButton(child: Text('Apple'), onPressed: () {})),
SizedBox(width: 200, child: ElevatedButton(child: Text('Orange'), onPressed: () {})),
SizedBox(width: 200, child: ElevatedButton(child: Text('Emu Apple fruit'), onPressed: () {}))
Run Code Online (Sandbox Code Playgroud)
您可以选择宽度为您想要设置宽度的任何数字。
| 归档时间: |
|
| 查看次数: |
1614 次 |
| 最近记录: |