概述

#

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

另请参阅