【问题标题】:How to dynamically extend the CARD widget height size based on the text in the card?如何根据卡片中的文字动态扩展 CARD 小部件的高度大小?
【发布时间】:2020-08-15 03:38:05
【问题描述】:

因此,如果我在小部件卡片中放入大量文本,则文本将超过卡片小部件,而我将看不到其余部分。

只有当我手动调整每张卡片的大小时,它才会显示所有文本。

是否可以根据卡片中的文字动态扩展 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),
                )
              ],
            ),
          ),
        ));
  }

【问题讨论】:

    标签: android-layout flutter dart flutter-layout flutter-widget


    【解决方案1】:

    您可能想使用ConstrainedBox。它允许您设置最小高度,但可以根据需要扩展:

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

    【讨论】:

    • 感谢您的回复,但我无法在我的代码中弄清楚。我刚刚用一些代码更新了问题。
    • ConstrainedBox 包裹顶部的Container,并删除其height 参数。我认为应该这样做。
    • 我做了,但整个文本会消失,我有一张空白卡片。如果我删除 minHeight 什么都不会发生。
    猜你喜欢
    • 2020-12-23
    • 2021-01-02
    • 2020-10-20
    • 1970-01-01
    • 1970-01-01
    • 2014-07-25
    • 2020-01-24
    • 1970-01-01
    • 2019-06-03
    相关资源
    最近更新 更多