Максимальная ширина контейнера во флаттере - PullRequest
0 голосов
/ 15 марта 2019
  Widget build(context) {
    return Row(
      mainAxisSize: MainAxisSize.min,
      children: [
        Container(
          width: 300,
          padding: EdgeInsets.all(10),
          decoration: BoxDecoration(
            color: color ?? Colors.blue,
            borderRadius: BorderRadius.circular(10)
          ),
          child: msg
        )
      ],  
    );
  }

Это метод сборки моего виджета, и он отображает этот интерфейс в зависимости от того, что я передаю как msg paramter

  1. Загрузка текста enter image description here
  2. Какой-то очень длинный текст enter image description here

Теперь проблема, с которой я сталкиваюсь, заключается в том, что я не могу обернуть текст внутри этого контейнера / синего поля без установки его ширины, но если я установлю ширину контейнера / синего поля, он всегда будет оставаться таким же широким, независимо от того, насколько коротким текст.

Теперь есть ли способ установить maxWidth (например, 500) контейнера / синей коробки? Чтобы синее поле стало настолько широким, насколько это необходимо для мелкого текста, такого как «Загрузка», а для длинного текста оно расширится до ширины 500 единиц, а затем обернет текст?

Требуемый вывод для длинного текста:

Для небольших текстов, таких как загрузка, я не хочу никаких изменений в интерфейсе, но для длинных текстов я хочу, чтобы это выглядело так. enter image description here

Ответы [ 2 ]

3 голосов
/ 30 марта 2019

Вы можете добавить ограничение к виджету контейнера с предпочтительным maxWidth следующим образом:

Widget build(context) {
return Row(
  mainAxisSize: MainAxisSize.min,
  children: [
    Container(
      constraints: BoxConstraints(minWidth: 100, maxWidth: 200),
      padding: EdgeInsets.all(10),
      decoration: BoxDecoration(
        color: color ?? Colors.blue,
        borderRadius: BorderRadius.circular(10)
      ),
      child: msg
    )
  ],  
);
}

Надеюсь, это поможет!

0 голосов
/ 15 марта 2019

Может быть, использовать Flexible вокруг текста, а затем обернуть его в контейнер фиксированного размера?Просто идея.

...