gpt4 book ai didi

flutter - 如何在 Flutter 中动态调整文本大小?

转载 作者:IT老高 更新时间:2023-10-28 12:31:38 35 4
gpt4 key购买 nike

我从 API 检索一段文本。我想为其分配一定数量的空间(比如一个最大容器,宽度:300.0,高度:100.0)。有时,该文本适合此 Container,字体大小为 30.0。在其他时候,除非我将文本大小设置为 24.0,否则它不适合。

有没有办法根据其父容器空间动态调整文本大小?

我已经构建了一个带有 ConstrainedBox 的容器,它可以让我定义文本空间的最大大小。我还用 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

另一种方法是使用我的字符串中的字符数来确定何时更改字体大小。这似乎有点手动。

最佳答案

您可以使用 FittedBox根据高度或宽度管理文本。

例如

只需将您的 Text 小部件包装到 FittedBox 小部件,例如,我想根据宽度调整 AppBar 文本的大小。

AppBar(
centerTitle: true,
title: FittedBox(
fit: BoxFit.fitWidth,
child: Text('Hey this is my long text appbar title')
),
),

文本将根据 AppBar 的宽度调整大小。

关于flutter - 如何在 Flutter 中动态调整文本大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50751226/

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