gpt4 book ai didi

flutter - 有没有办法在呈现之前计算文本宽度?

转载 作者:行者123 更新时间:2023-12-05 09:36:59 38 4
gpt4 key购买 nike

我有一个固定大小的框,我需要传递高度值。

在框内,我有一个可能溢出的文本小部件,因此我需要将“maxLines”设置为 2。但是,因为框高度是固定的,所以文本小部件不会占用 2 行。

我可以为框的高度传递一个更大的值,但如果文本小部件只占用 1 行,它看起来不太好。

如果我可以计算文本小部件的总像素,然后通过将其与固定大小框的宽度进行比较,计算出文本小部件需要多少行,那就太好了。

    SizedBox(
child: Text(
title,
style: Theme.of(context).textTheme.headline6,
maxLines: 2,
),
width: 300,
height: 60,
),

例如

      height: Theme.of(context).textTheme.headline6.fontSize * title.length > 300? 72 : 60

最佳答案

答案在这里

  Size calcTextSize(String text, TextStyle style) {
final TextPainter textPainter = TextPainter(
text: TextSpan(text: text, style: style),
textDirection: TextDirection.ltr,
textScaleFactor: WidgetsBinding.instance.window.textScaleFactor,
)..layout();
return textPainter.size;
}

final double textWidth = calcTextSize(text, TextStyle(fontSize: fontSize)).width;

关于flutter - 有没有办法在呈现之前计算文本宽度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64663441/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com