我对
RichText
和 TextSpan
小部件有疑问。所有 Text
小部件均受设备字体大小(在设置中更改)影响,但 RichText
不受影响。有什么想法可以解决吗?
我是这样解决的:
RichText(
textScaleFactor: MediaQuery.of(context).textScaleFactor, <--- add this
text: ...
)
实际上
RichText
是较低级别的小部件之一,您需要自己处理很多事情。
您应该尝试使用
Text.rich()
来代替。它与 RichText
几乎相同,但继承了父窗口小部件树的样式。
已接受的答案现已弃用。这是确保
RichText
小部件缩放的更新方法。虽然 WSBT 的答案中的Text.rich()
也是一个很好的解决方案。
RichText(
textScaler: TextScaler.linear(
MediaQuery.of(context).textScaler.scale(1),
),
从 Flutter 3.x 开始,您应该在
RichText
中进行设置,以便它对设备文本比例因子变化做出反应:
textScaler: MediaQuery.textScalerOf(context),
另外,在iOS模拟器上,当模拟器聚焦时,您可以使用快捷键:
Command + option + plus/minus
来测试不同的文字大小