Skip to main content

啟用 Android 14 非線性字型縮放

Android 14 的全新非線性字型縮放功能已於 Flutter v3.14 之後啟用。

摘要

#

Android 14 引入了最高可達 200% 的非線性字型縮放功能。 當使用者在系統偏好設定中調整無障礙文字縮放時,這可能會改變您的應用程式外觀。

背景

#

Android 14 非線性字型縮放功能可防止無障礙字型縮放過度,當使用者在系統偏好設定中提高文字縮放值時,較大的文字會以較低的比例縮放。

遷移指南

#

如同 Android 14 功能概覽所建議, 請在啟用最大字型大小(200%)的情況下測試您的 UI。 這可以驗證您的應用程式是否能正確套用字型大小,並能在不影響可用性的前提下容納較大的字型。

若要在您的應用程式與自訂元件(Widgets)中採用非線性字型縮放,請考慮從 textScaleFactor 遷移至 TextScaler。 如需瞭解如何遷移至 TextScaler, 請參考 Deprecate textScaleFactor in favor of TextScaler 遷移指南。

暫時選擇退出

若您希望在完成遷移前暫時於 Android 14 上停用非線性文字縮放, 請在應用程式的元件樹(widget tree)頂部加入修改後的 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:

另請參閱: