Как расширить элементы в list.generate
Я пытаюсь показать список виджетов (кругов), но хочу расширить их и сделать так, чтобы круги занимали всю страницу. я пробовал разные методы; я использовал flexibe, flex и расширенный. однако ни один из них не сработал. Можете ли вы порекомендовать? Заранее спасибо! РЕДАКТИРОВАТЬ: ЗДЕСЬ КОД: // шаговый круг это виджет, который я пытаюсь расширить между ними
return Expanded(
flex: 10,
child: Row(
crossAxisAlignment: CrossAxisAlignment.stretch,
children:
List<Widget>.generate( numberOfCircles,
(int index) {
return StreamBuilder(
stream: stepperBloc.statusStream,
initialData: {0:"incomplete", 1:"incomplete", 2:"incomplete"},
builder:(_, AsyncSnapshot statusSnapshot){
if(statusSnapshot.hasData){
return Row(
children:<Widget>[ Flexible(
flex:5,
child: StepperCircle(
index: index,
status: statusSnapshot.data[index],
// onTap: () => stepperBloc.statusSink({index: "selected"}),
),
)],
);
1 ответ
Вы можете попробовать использовать PageView
виджет, он расширяет каждый элемент, чтобы заполнить экран (в соответствии с viewportFraction
значение), и вы можете установить направление по вертикали или горизонтали.
PageController controller = PageController(viewportFraction: 1.0);
return PageView(
controller: controller,
scrollDirection: Axis.vertical,
children: <Widget>[
Container(
color: Colors.red,
),
Container(
color: Colors.blue,
),
Container(
color: Colors.yellow,
),
],
);
Дополнительная информация: https://docs.flutter.io/flutter/widgets/PageView-class.html