Сделать дочерний элемент Row как можно более широким (оставшаяся ширина родительского элемента) во Flutter?
У меня есть виджет, который я хочу отображать при загрузке данных из REST API. Он будет использоваться
FutureBuilder
когда
Future
еще не завершено.
Он должен отобразить серый квадрат и серую линию.
Что-то похожее на то, что делает Facebook:
Я реализовал это с помощью и двух
Container
с. Однако я хочу, чтобы линия расширялась по горизонтали вправо и занимала столько места, сколько доступно внутри
Row
. Вот где ударился о стену. Как я могу это сделать?
Вот мой код:
class Waiting extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Center(
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Row(
crossAxisAlignment: CrossAxisAlignment.end,
children: [
Container(
color: Colors.grey[200],
height: 40,
width: 40,
),
SizedBox(width: 20),
Padding(
padding: const EdgeInsets.fromLTRB(0, 0, 0, 8),
child: Container(
color: Colors.grey[200],
width: 140, // I want this to be as wide as possible
height: 10,
),
)
],
),
),
);
}
}
1 ответ
Решение
Просто оберните эту часть расширенным виджетом: -
class Waiting extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Center(
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Row(
crossAxisAlignment: CrossAxisAlignment.end,
children: [
Container(
color: Colors.grey[200],
height: 40,
width: 40,
),
SizedBox(width: 20),
Expanded( //added expanded over here
child: Padding(
padding: const EdgeInsets.fromLTRB(0, 0, 0, 8),
child: Container(
color: Colors.grey[200],
height: 10,
),
),
),
],
),
),
);
}
}