如果我有文本大小和字体,那么在屏幕上呈现之前,如何计算String的宽度和高度?我需要知道,因为我想在屏幕上绘制之前,把它放在一个合适大小的Container中.

推荐答案

你可以使用TextPainterlayout来计算文本的宽度和高度.

例如:

final textSpan = TextSpan(
  text: 'Do you wanna build a snowman?',
  style: TextStyle(fontSize: 30, color: Colors.white),
);
final tp = TextPainter(text: textSpan, textDirection: TextDirection.ltr);
tp.layout();
print('text width: ${tp.width}');

控制台输出:

Flutter :文本宽度:460.0

Flutter相关问答推荐

为什么在Flutter中使用firebase数据库时获取引用时会划掉引用?

在Riverpod ConsumerWidget中使用文本编辑控制器

所需引用Firebase处不存在任何对象

下拉图标未居中

在背景图像上排列定位徽标

如何创建这样的按钮

通过Ffltter应用程序与Docker服务器进行交互以进行身份验证

播放特定持续时间Flutter 的音频

flatter_localizations错误在Null值上使用了Null判断运算符

如何在 Flutter 中设计像 zomato 应用程序一样的搜索字段?

Flutter - Riverpod 2.0 - 如何访问 onDispose 回调?

无法应用插件com.chaquo.python

Flutter:使用 GlobalKey 访问 BlocProvider

Dart 撕掉 const 构造函数

无状态小部件被奇怪地重建

如何删除图像边框半径与其父容器边框半径之间的空白

Flutter - 使用 pin 进行身份验证

使用 mocktail 包进行单元测试时,类型Null不是Future类型的子类型

更新未知文档 ID firebase\flutter 中的字段

Flutter :RangeError(索引):无效值:不在包含范围内0..3:4使用IndexedListView.builder