0

我使用 Expanded() 告诉我行中的小部件使用可用空间。我想在我的行中的元素之间有 4px 的空间。我不想对行之外的元素有相同的空间。鉴于 Flutter 不支持负 Padding,因此我无法以使第一项没有左 Padding 和最后一项没有右 Padding 的方式添加 Padding。

是否有模式可以轻松定义特定宽度的间距?我想要一个适用于任意数量的小部件的解决方案。对于 4 个小部件,我想要产生相当于:

Row(children: [
    Padding(
        padding: const EdgeInsets.fromLTRB(0, 0, 8, 0),
        child: Expanded(Text("Alice"))),
    Padding(
        padding: const EdgeInsets.fromLTRB(8, 0, 8, 0),
        child: Expanded(Text("Alice"))),
    Padding(
        padding: const EdgeInsets.fromLTRB(8, 0, 8, 0),
        child: Expanded(Text("Alice"))),
    Padding(
        padding: const EdgeInsets.fromLTRB(8, 0, 0, 0),
        child: Expanded(Text("Alice")))
]);
4

2 回答 2

0

无法准确理解您想要实现的目标,但尝试使用SizedBox小部件非常简单易用,请在此处查看

https://api.flutter.dev/flutter/widgets/SizedBox-class.html

例子

  SizedBox(
  width: 200.0,
  height: 300.0,
)
于 2020-05-23T13:08:48.857 回答
0

我通常使用这个:

Row(
  crossAxisAlignment: CrossAxisAlignment.center,
  mainAxisAlignment: MainAxisAlignment.spaceAround,
  children: [
    Widget(),
    Spacer(),
    Widget(),
    Widget(),
    ],
  ),

Spacer,一个占用与它的 flex 值成比例的空间的小部件。Flutter 行类

mainAxisAlignment 属性:应如何沿主轴放置子项。Flutter MainAxisAlignment 枚举

如果要确定大小,可以使用SizedBox(width: double)代替Spacer ().

SizedBox:具有指定大小的盒子。Flutter SizeBox 类

于 2020-05-23T13:13:04.940 回答