【发布时间】:2020-08-28 01:01:55
【问题描述】:
目标:根据父小部件的约束实现自动调整大小的小部件
用例:将两个按钮放在同一个 Row 上,但可以适应多种屏幕尺寸(响应式)
问题:我有两个按钮(每个都包裹在 column 小部件中),它们都包裹在 Row 小部件中。
总结:(父->子):行> [列-列]
如下图所示。
尝试过的解决方案:我尝试将小部件放置在扩展小部件内,该小部件放置在 Flex 小部件内
Padding > Flex > Expanded > Row > [Widgets]
代码如下:
Padding( //Main Padding
padding: EdgeInsets.only(top: 14, bottom: 14),
child: Flex(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
mainAxisSize: MainAxisSize.max,
direction: Axis.horizontal,
children: <Widget>[
Expanded(
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
mainAxisSize: MainAxisSize.max,
children: <Widget>[
ChipButton(text: 'Main Size', withIcon: false),
ChipButton(text: 'Others', withIcon: false),
],
),
),
],
),
),
Padding(
padding: EdgeInsets.only(top: 14, bottom: 14),
child: Expanded(
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
mainAxisSize: MainAxisSize.max,
children: <Widget>[
ChipButton(text: 'trademark', withIcon: false),
],
),
),
),
Padding(
padding: EdgeInsets.only(top: 14, bottom: 14),
child: Expanded(
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
mainAxisSize: MainAxisSize.max,
children: <Widget>[
ChipButton(text: 'Price', withIcon: false),
ChipButton(text: 'Color', withIcon: false),
],
),
),
),
【问题讨论】:
标签: flutter