我从一个 API 检索一段文本。我想为它分配一定的空间量(比如宽度为300.0,高度为100.0的 max Container)。有时,这段文字适合这个容器的字体大小为30.0。在其他情况下,除非我将文本大小设置为24.0,否则它就不适合。
是否有办法根据其父容器空间动态调整文本的大小?
我用 ConstrainedBox 构建了一个 Container,它允许我定义文本空间的最大大小。我还用 LayoutBuilder 包装了我的文本。我希望能够检查文本的空间高度,并基于此确定如何调整文本的大小。像这样:
Container(
child: ConstrainedBox(
constraints: BoxConstraints(
minWidth: 300.0,
maxWidth: 300.0,
minHeight: 30.0,
maxHeight: 100.0,
),
child: LayoutBuilder(
builder: (BuildContext context, BoxConstraints constraints) {
if (/* height is larger than 100.0? height is over the constraints? */) { return textWithSize24(); }
return textWithSize30();
}),
),
),
如何确定“如果文本大小为30.0,则文本将占用的高度”?
也许我的方法不对,我应该用 maxLines
来确定这个?但是我们怎么知道我们已经超过了 maxLines
?
另一种方法是使用 String 中的字符数来确定何时更改字体大小。这看起来像是手动操作。