我使用Expanded()来告诉我的Row中的Widgets使用可用空间。我想在我的Row中的元素之间有4px的空间。我不想在Row之外的元素上有同样的空间。鉴于Flutter不支持负的Padding,因此我不能以给第一个项目没有左Padding和最后一个项目没有右Padding的方式添加Padding。
有没有一种模式可以轻松定义特定宽度的间距?我想要一个能适用于任意数量的Widgets的解决方案。对于4个Widgets,我想要一些能产生等价物的东西。
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")))
]);
不明白你到底想实现什么,但可以试试使用 SizedBox
小工具非常容易和简单的检查它在这里
https:/api.flutter.devflutterwidgetsSizedBox-class.html。
例子
SizedBox(
width: 200.0,
height: 300.0,
)
我通常用这个。
Row(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [
Widget(),
Spacer(),
Widget(),
Widget(),
],
),
Spacer, 一个占据空间的widget,与它的弹性值成正比。翩翩行类
mainAxisAlignment 属性:如何沿着主轴放置子女。翩翩起舞 MainAxisAlignment enum
如果你想确定尺寸,你可以使用 SizedBox(width: double)
而不是 Spacer ()
.
SizedBox(尺寸框)。一个具有指定大小的盒子。Flutter SizedBox类