Как динамически увеличить размер высоты виджета CARD в зависимости от текста на карте? - PullRequest
0 голосов
/ 30 апреля 2020

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

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

Можно ли динамически увеличивать размер высоты виджета CARD на основе текста на карточке?

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

Код:

    Widget _card(
      {Color primary = Colors.redAccent,
      String imgPath,
      String chipText1 = '',
      String chipText2 = '',
      Widget backWidget,
      Color chipColor = LightColor.orange,
      bool isPrimaryCard = false}) {
    return Container(          
        height: isPrimaryCard ? 500 : 500,
        width: isPrimaryCard ? width * .90 : width * .90,
        margin: EdgeInsets.symmetric(horizontal: 10, vertical: 20),
        decoration: BoxDecoration(
            color: primary.withAlpha(200),
            borderRadius: BorderRadius.all(Radius.circular(20)),
            boxShadow: <BoxShadow>[
              BoxShadow(
                  offset: Offset(0, 5),
                  blurRadius:
                      10, 
                  color: LightColor.lightpurple.withAlpha(20))
            ]),
        child: ClipRRect(
          borderRadius: BorderRadius.all(Radius.circular(20)),
          child: Container(
            child: Stack(
              children: <Widget>[
                backWidget,
                Positioned(                      
                    top: 20,
                    left: 10,
                    child: CircleAvatar(                         
                      backgroundColor: Colors.transparent,
                      backgroundImage: NetworkImage(imgPath),
                    )),
                Positioned(                      
                  top: 30,
                  left: 20,
                  child: _cardInfo(chipText1, chipText2,
                      LightColor.titleTextColor, chipColor,
                      isPrimaryCard: isPrimaryCard),
                )
              ],
            ),
          ),
        ));
  }

1 Ответ

0 голосов
/ 30 апреля 2020

Возможно, вы захотите использовать ConstrainedBox. Позволяет установить минимальную высоту, но может расширяться при необходимости:

Card(
  child: ConstrainedBox(
    constraints: BoxConstraints(
      minHeight: 100,
    ),
    child: Text("")
  )
)
...