Автоматическое расширение контейнера во флаттере - для всех устройств - PullRequest
1 голос
/ 10 апреля 2019

Мне нужен контейнер с небольшим текстом для автоматического расширения. У меня есть вызов API, который может быть от 5 до 500 слов. Я не хочу иметь только один фиксированный размер, который огромен, но содержит 10 слов.

Я пробовал Expanded () и SizedBox.Expand (), но я могу использовать их неправильно

                    Card( 
                     elevation: defaultTargetPlatform ==
                          TargetPlatform.android ? 5.0 : 0.0,
                      child: Column(
                        children: <Widget>[
                          Container(
                            margin: const EdgeInsets.all(0.0),
                            padding: const EdgeInsets.all(2.0),
                            decoration: BoxDecoration(color: Colors.black),
                            width: _screenSize.width,
                            height: 250,
                            child: Column(
                              children: <Widget>[
                                Container(
                                  color: Colors.black,
                                  width: _screenSize.width,
                                  height: 35,
                                  child: Padding(
                                    padding: const EdgeInsets.only(
                                        left: 15, top: 11),
                                    child: Text("Title".toUpperCase(),
                                      style: TextStyle(
                                          color: Colors.white
                                      ),
                                    ),
                                  ),
                                ),
                                Container(
                                  color: Colors.white,
                                  width: _screenSize.width,
                                  height: 210,
                                  child: Column(
                                    crossAxisAlignment: CrossAxisAlignment.center,
                                    mainAxisAlignment: MainAxisAlignment.start,
                                    children: <Widget>[
                                      Padding(
                                        padding: const EdgeInsets.only(top: 8, bottom: 5),
                                        child: Text("Title of expanding text", style: TextStyle(
                                          fontSize: 25,
                                        ),
                                        ),
                                      ),
                                      Text("Expanding text", style: TextStyle(
                                          fontSize: 35,
                                          fontWeight: FontWeight.w800
                                      ),),
                                    ],
                                  ),
                                ),
                              ],
                            ),
                          ),
                        ],
                      ),
                    ),

Мне просто нужен контейнер, чтобы расширяться, но оставайся маленьким / становись больше

Ответы [ 2 ]

1 голос
/ 10 апреля 2019

Вы пытались вообще не указывать height?В этом случае Container должен переноситься в соответствии с дочерним элементом.

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

Выше приведена выдержка из официальной документации по флаттеру для Container.

Вот официальная документация по флаттеру ссылка .

0 голосов
/ 10 апреля 2019

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

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

FittedBox(child: Text('...............Your text...............'));
...