Flutter - Уменьшите размер строки до необходимого места - PullRequest
0 голосов
/ 11 июля 2020

Я хотел бы создать контейнер, содержащий строку текстового виджета, sizeBox и IconButton (для удаления этого контейнера).

Размер контейнера должен соответствовать дочерним элементам, что означает строку

Контейнеры без дочерних элементов стараются быть как можно большими, если входящие ограничения не являются неограниченными, и в этом случае они стараются быть как можно меньше. Контейнеры с детьми подходят по размеру их детям. Аргументы конструктора ширины, высоты и ограничений переопределяют это. (Из веб-страницы flutter .)

Строка расширяется максимально, но я хотел бы, чтобы она была как можно меньше. Контейнер (в частности, его границы) должен быть как можно меньше

  Widget chipForm(String chipText){
    return Container(
      decoration: BoxDecoration(
        border: Border.all(
            width: 3.0
        ),
        borderRadius: BorderRadius.all(
            Radius.circular(5.0)
        ),
      ),
      child: Row(
        children: [
          Text(chipText),
          SizedBox(width : 10),
          IconButton(
            icon: Icon(Icons.clear),
            onPressed: (){},
          )
        ],
      ),
    );
  }

Как мне это сделать?

1 Ответ

1 голос
/ 11 июля 2020

Виджет Row имеет свойство mainAxisSize, которое равно

Сколько места должно быть занято на главной оси.

Установите значение MainAxisSize.min which

Минимизировать [s] количество свободного пространства вдоль главной оси с учетом ограничений входящего макета.

, чтобы уменьшить Row на столько, сколько возможно.

Пример:

Row(
  mainAxisSize: MainAxisSize.min,
  children: [
    Text(chipText),
    SizedBox(width : 10),
    IconButton(
      icon: Icon(Icons.clear),
      onPressed: (){},
    )
  ],
),

Вы должны проверить документацию , прежде чем спрашивать здесь.

...