概述

#

Android 14 引入了高达 200% 的非线性字体缩放功能。当用户在系统偏好设置中更改辅助功能文本缩放时,这可能会改变您的应用外观。

背景

#

通过在用户增加系统偏好设置中的文本缩放值时以较低的速率缩放较大的文本,Android 14 非线性字体缩放功能可以防止过度的辅助功能字体缩放。

迁移指南

#

正如Android 14 功能概述所建议的,请在启用最大字体大小(200%)的情况下测试您的 UI。这应该能验证您的应用能够正确应用字体大小,并能在不影响可用性的情况下适应更大的字体大小。

为了在您的应用和自定义组件中采用非线性字体缩放,请考虑从 textScaleFactor 迁移到 TextScaler。要了解如何迁移到 TextScaler,请查看《弃用 textScaleFactor,改用 TextScaler迁移指南。

暂时退出

在您迁移应用之前,如需在 Android 14 上选择退出非线性文本缩放,请在应用组件树的顶部添加一个修改后的 MediaQuery

Dart
runApp(
  Builder(builder: (context) {
    final mediaQueryData = MediaQuery.of(context);
    final mediaQueryDataWithLinearTextScaling = mediaQueryData
      .copyWith(textScaler: TextScaler.linear(mediaQueryData.textScaler.textScaleFactor));
    return MediaQuery(data: mediaQueryDataWithLinearTextScaling, child: realWidgetTree);
  }),
);

这使用了已弃用的 textScaleFactor API。一旦该 API 从 Flutter API 中移除,它将停止工作。

时间线

#

发布版本:3.14.0-11.0.pre
稳定版本:3.16

参考资料

#

API 文档

相关问题

相关 PR

另请参阅