Как расширить элементы в list.generate - PullRequest
0 голосов
/ 20 декабря 2018

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

0 голосов
/ 20 декабря 2018

Вы можете попробовать использовать виджет 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

...