Как правильно центрировать текстовый виджет в сжатом контейнере в стеке - PullRequest
0 голосов
/ 06 марта 2020

Я хочу контейнер , который сжимается до содержимого . Этот контейнер должен быть помещен в стек , чтобы у контейнера не было никаких ограничений извне.

    ConstrainedBox(
      constraints: BoxConstraints(maxWidth: 150.0, minHeight: 48.0),
      child: Container(
        decoration: BoxDecoration(borderRadius: BorderRadius.circular(8), border: Border.all(color: Colors.black)),
        child: SelectableText(
          "Text",
        ),
      ),
    );

enter image description here

This Код позволяет контейнеру сжиматься вокруг моего текста, что я и хочу.

Теперь я хочу центрировать дочерний виджет (текст) в моем контейнере. Я обертываю текст виджетом «Центр», и он растягивает контейнер на все доступное вертикальное пространство, что явно не было моей целью. Самое близкое, что я мог бы получить, - это решение с колонкой:

    ConstrainedBox(
      constraints: BoxConstraints(maxWidth: 150.0, minHeight: 48.0),
      child: Container(
        decoration: BoxDecoration(borderRadius: BorderRadius.circular(8), border: Border.all(color: Colors.black)),
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          crossAxisAlignment: CrossAxisAlignment.center,
          mainAxisSize: MainAxisSize.min,
          children: <Widget>[
            SelectableText(
              "Node",
            ),
          ],
        ),
      ),
    );

Это центрирует мой текст по вертикали, а не по горизонтали, и не похоже, что это правильный способ добиться того, чего я хочу.

1 Ответ

1 голос
/ 06 марта 2020

Завернуто в Center виджет

    ConstrainedBox(
      constraints: BoxConstraints(maxWidth: 150.0, minHeight: 48.0),
      child: Center(
        child: Container(
          decoration: BoxDecoration(
              borderRadius: BorderRadius.circular(8),
              border: Border.all(color: Colors.black),
          ),
          child: SelectableText("Text"),
        ),
      ),
    )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...