Какой самый эффективный способ добавить интервал определенной ширины к виджетам в строке ()?
Я использую 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 класс