Текст внутри Expanded не переносится после обновления флаттера - PullRequest
0 голосов
/ 22 мая 2019

Я на стабильном канале флаттера, и я недавно обновился с v1.2.1 до v1.5.4.После этого мой макет перестал работать так, как раньше.

У меня есть SliverGrid с большим количеством Column виджетов внутри.Внутри Column у меня есть Image.asset(), а также Text виджет.Я хочу, чтобы все изображения в моей сетке были одинакового размера, однако текст может быть длиной в одну или две строки.

В флаттере v1.2.1 это работало так

ConstrainedBox(
    constraints: BoxConstraints.expand(),
    child: Container(
      padding: EdgeInsets.fromLTRB(8, 0, 8, 0),
      child: Column(
        children: <Widget>[
          Image.asset('src'),
          Expanded(
              child: Text(
              widget.text,
              style: TextStyle(
                  fontWeight: FontWeight.bold, 
                  color: Colors.black),
            textAlign: TextAlign.center,
          ),
         ),
        ],
      ),
    ),
  ),

Но, делая то же самое в v1.5.4, будет видна только первая строка моего текста, тогда как раньше было две, и я смог увеличить количество видимых строк, установив для свойства mainAxisSpacing: 11.0, нечто большее.

Я могу получить примерно такое же поведение, обернув Image.asset() в Expanded тоже.Но даже после манипулирования значениями flex я не могу получить тот же макет.

Вот так выглядит мой минимальный пример при сборке с v1.2.1: minimal example on v1.2.1

А как это выглядит с v1.5.4: minimal example on v1.5.4

Код для примера, который я настроил, - Github .Очевидно, что вам понадобится собрать его с двумя разными версиями флаттера, если вы хотите увидеть эффект.

Мой вопрос, однако, заключается в том, как мне добиться того же поведения, которое я имел в v1.2.1 с v1.5.4 флаттера

Ответы [ 2 ]

0 голосов
/ 22 мая 2019

Попробовав несколько разных вещей, я пришел к выводу, что мне придется установить childAspectRatio моего SliverGrid на значение, меньшее 1 . И установите mainAxisSpacing в 0.

Теперь все выглядит хорошо. Однако было бы идеально, если бы я мог изменить AspectRatio в соответствии с GridContent, потому что, когда у меня есть только одна строка Text Widgets в строке, тогда места больше, чем нужно.

0 голосов
/ 22 мая 2019

Добавить maxLines

Text(
  widget.text,
  style: TextStyle(
    fontWeight: FontWeight.bold, 
    color: Colors.black),
  textAlign: TextAlign.center,
  maxLines: 2,
),
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...