概述

#

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

另請參閱