Как сделать поле, которое будет расширяться, чтобы соответствовать содержимому, но перестать расширяться при заполнении оставшегося пространства? - PullRequest
0 голосов
/ 28 июня 2018

Я трепещу. У меня есть layout, который имеет pageview.builder, и на каждой странице отображается карточка. Я хотел бы, чтобы карта соответствовала содержанию, расширяясь для карт с большим содержанием, вплоть до того, как карта заполняет остальную часть страницы, и в этот момент я бы хотел начать прокрутку. Я потратил несколько часов, пробуя разные вложения layouts, но не могу подобрать комбинацию для достижения желаемого эффекта.

code выглядит примерно так:

child: new Column(
        children: [

          SizedBox(
            height: 25.0,
          ),
          Image.asset(
            "images/image.png",
            scale: 0.1,
            height: 100.0,
          ),
          new ConstrainedBox(
              constraints: BoxConstraints(maxHeight: 550.0),
              child: PageView.builder(
                controller: PageController(viewportFraction: 0.9),
                itemBuilder: (BuildContext context, int index){
                  DayInfo thisDay = AllDaysInfo[index];
                      child: Material(
                          child: new Text(thisDay.info),
                          )
                      )
                 )
        ]
),

(parentheses может быть неверно! Я сократил код, чтобы было легче увидеть, что я делаю)

Итак, я хочу удалить ConstrainedBox, что по сути заставляет его быть 550 в высоту. Я хочу, чтобы это позволило ему заполнить оставшееся пространство, но перестать расти, когда оно туда попадет!

Есть идеи?

Mike

1 Ответ

0 голосов
/ 02 июля 2018

Итак - я решил это! Извините - это было глупо. По сути, все, что мне нужно было сделать, это добавить виджет Expanded вместо ConstrainedBox в приведенном выше примере и поместить виджет SingleChildScrollView вокруг виджета Material. Работает шарм!

child: new Column(
        children: [

          SizedBox(
            height: 25.0,
          ),
          Image.asset(
            "images/image.png",
            scale: 0.1,
            height: 100.0,
          ),
          new Expanded(
              child: PageView.builder(
                controller: PageController(viewportFraction: 0.9),
                itemBuilder: (BuildContext context, int index){
                  DayInfo thisDay = AllDaysInfo[index];
                      child: SingleChildScrollView
                             child: Material(
                                    child: new Text(thisDay.info),
                                    )
                             )
                      )
                 )
        ]
),
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...