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
另请参阅