为Row()中的Widgets添加特定宽度的间距的最有效方法是什么?

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

我使用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")))
]);
flutter flutter-layout flutter-row
1个回答
0
投票

不明白你到底想实现什么,但可以试试使用 SizedBox 小工具非常容易和简单的检查它在这里

https:/api.flutter.devflutterwidgetsSizedBox-class.html。

例子

  SizedBox(
  width: 200.0,
  height: 300.0,
)

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类

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