我在 Flutter 中有这样一行:
Row(
children: [
widgetA,
widgetB,
widgetC,
]
);
该行可能没有足够的空间来包含其固有宽度的所有小部件。在这种情况下,当这些小部件的宽度受到限制时,如何保持其固有宽度的比例?
使用
LayoutBuilder
可以获得有希望的解决方案
例如
LayoutBuilder(
builder: (context,constraint) {
return Row(
children: [
SizedBox(
width: constraint.maxWidth / 3,
child: widgetA,
),
SizedBox(
width: constraint.maxWidth / 3,
child: widgetB
),
SizedBox(
width: constraint.maxWidth / 3,
child: widgetC,
),
]
);
}
);
由于只有 3 个小部件,因此每个小部件的宽度都是最大宽度的 1/3。
如果数组动态生成小部件,则数组的长度也可以替换分母 3。