RenderFlex переполнен на 8,1 пикселя внизу с помощью ListView - PullRequest
0 голосов
/ 25 мая 2020

У меня есть экран, на котором есть поле ввода, а под ним - список текстовых сообщений. Я хочу, чтобы список можно было прокручивать, но поле ввода всегда должно оставаться вверху. Когда я делал это, как показано ниже, я получил сообщение A RenderFlex overflowed by 8.1 pixels on the bottom., что означает, что мой столбец слишком сильно вырос. Вместо этого я хочу, чтобы список стал прокручиваемым.

Material(
          child: Container(
            child: Column(
              mainAxisAlignment: MainAxisAlignment.start,
              children: <Widget>[
                Padding(
                  padding:
                      const EdgeInsets.symmetric(horizontal: 5, vertical: 5),
                  child: TextFormField(...),
                ),
                ListView.builder(
                        controller: scrollController ,
                        shrinkWrap: true,
                        itemCount: comments.length,
                        itemBuilder: buildTile)
              ],
            ),
          ),
        ),

1 Ответ

0 голосов
/ 25 мая 2020

Просто оберните свой ListView в виджет Expanded.

Material(
  child: Container(
    child: Column(
      mainAxisAlignment: MainAxisAlignment.start,
      children: <Widget>[
        Padding(
          padding: const EdgeInsets.symmetric(horizontal: 5, vertical: 5),
          child: TextFormField(...),
        ),
        Expanded(
          child: ListView.builder(
            controller: scrollController ,
            shrinkWrap: true,
            itemCount: comments.length,
            itemBuilder: buildTile,
          ),
        ),
      ],
    ),
  ),
)
...