Какой самый эффективный способ добавить интервал определенной ширины к виджетам в строке ()?

Я использую Expanded(), чтобы указать виджетам в моей строке использовать доступное пространство. Я хочу, чтобы между элементами в строке было расстояние 4 пикселя. Я не хочу иметь такое же пространство по отношению к элементам за пределами строки. Учитывая, что Flutter не поддерживает отрицательный 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")))
]);

2 ответа

Не могу понять, чего именно вы хотите достичь, но попробуйте использовать SizedBox виджет очень легкий и простой проверьте это здесь

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

пример

  SizedBox(
  width: 200.0,
  height: 300.0,
)

Обычно я использую это:

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

Spacer, виджет, который занимает пространство пропорционально его гибкости. Класс Flutter Row

mainAxisAlignment свойство: как дочерние элементы должны быть размещены вдоль главной оси. Перечисление Flutter MainAxisAlignment

Если вы хотите определить размер, вы можете использовать SizedBox(width: double) вместо того Spacer ().

SizedBox: коробка с указанным размером. Flutter SizedBox класс

Другие вопросы по тегам