You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过编程方式全局放大Flutter应用的字体大小?

Flutter 全局文本缩放实现方案(基于用户偏好)

1. 实现状态管理类

创建PreferencesNotifier类,负责管理文本缩放比例的状态,并通过SharedPreferences持久化用户设置:

class PreferencesNotifier with ChangeNotifier {
  double textScaleFactor = 1.0;

  PreferencesNotifier();

  // 初始化时从本地存储读取已保存的缩放比例
  Future<void> initialize() async {
    var prefs = await SharedPreferences.getInstance();
    textScaleFactor = prefs.getDouble('textScaleFactor') ?? 1.0;
  }

  // 更新缩放比例,通知UI刷新并持久化到本地
  setTextScaleFactor(double x) {
    textScaleFactor = x;
    notifyListeners();

    SharedPreferences.getInstance().then(
      (prefs) {
        prefs.setDouble('textScaleFactor', textScaleFactor);
      },
    );
  }
}

2. 全局应用缩放比例

通过MediaQuery包裹根组件,将缩放比例全局应用到所有依赖MediaQuery文本缩放规则的组件上:

MediaQuery(
  data: MediaQuery.of(context).copyWith(
    textScaleFactor: preferencesNotifier.textScaleFactor,
  ),
  child: Widget() // 替换为你的实际根组件
),

使用前需确保PreferencesNotifier已通过ChangeNotifierProvider等状态管理方式注入到上下文,以便在MediaQuery中获取实例。

内容的提问来源于stack exchange,提问作者Erick Lanford Xenes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 17:40:44