Flutter中的最多两行的FittedBox

9
Container(
      child: Padding(
        padding: const EdgeInsets.symmetric(horizontal: 60),
        child: Text(
          //  subCategoryName,
          "This is a very Long Text takes more space",
          textAlign: TextAlign.center,
          maxLines: 2,
          overflow: TextOverflow.fade,
          style: Theme.of(context)
              .textTheme
              .headline3
              .copyWith(color: Colors.white, fontSize: 32),
        ),
      ),
    ),

看这张图片

我需要将这行文字最多显示两行,并且如果文本过长则缩小大小,就像FittedBox一样(使用BoxFit.fitWidth)。

当我使用FittedBox时,它看起来像是这样的。但是如果需要,我需要将其调整到2行。任何解决方案都将不胜感激。


2
也许这个包可以帮助你。 - Sam Chan
2个回答

7

根据Sam Chan的回复,我已经解决了这个问题。 我使用了AutoSizeText软件包。


-1

如果您不想添加软件包,那么可以使用解决方法。您可以检查文本的长度,并根据此处理它。

// declare a widget
    Widget titleTextWidget = Text(
      title,
      style: TextStyle(
        fontWeight: FontWeight.w600,
      ),
      maxLines: 2,
      textAlign: TextAlign.center,
    );

// use condition to render it.
    title.length > 45
        ? FittedBox(
            child: titleTextWidget,
          )
        : titleTextWidget,

这个在特定的设备屏幕/类型上可以工作,但对其他设备不适用(基于固定文本长度)。 - bqubique

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接