Skip to main content

已启用 Android 14 非线性字体缩放

摘要

#

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:

另请参阅: