跳至主要内容

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

另请参阅