Flutter中一行空间不足时如何保持固有宽度的比例?

问题描述 投票:0回答:1

我在 Flutter 中有这样一行:

Row(
  children: [
    widgetA,
    widgetB,
    widgetC,
  ]
);

该行可能没有足够的空间来包含其固有宽度的所有小部件。在这种情况下,当这些小部件的宽度受到限制时,如何保持其固有宽度的比例?

flutter
1个回答
0
投票

使用

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。

© www.soinside.com 2019 - 2024. All rights reserved.