Flutter如何实现Text组件文本大小固定不跟随系统字体大小缩放?
Flutter Text组件固定字体大小不跟随系统字体缩放解决方案
问题根因
Flutter 应用全局默认携带系统级的 MediaQuery 配置,Text 组件未主动指定缩放相关属性时,会自动读取上层 MediaQuery 的字体缩放值实现大小自适应,即便业务代码未主动调用 MediaQuery 相关 API,该逻辑依然会生效,这是 Flutter 框架层默认的处理机制,和原生 Android 手动指定字体单位的逻辑有差异。
解决方案
方案1:单个Text组件固定大小
直接给目标 Text 组件的缩放属性赋值为固定值即可,示例代码:
Text( "Random Text", style: TextStyle(color: myColor, fontSize: widget.fontSize), textScaleFactor: 1.0, )
方案2:全局范围禁用字体缩放
如果需要整个应用的所有文本都不跟随系统字体大小调整,可以在应用根节点重写全局缩放配置,示例代码:
MaterialApp( builder: (context, child) { return MediaQuery( data: MediaQuery.of(context).copyWith(textScaleFactor: 1.0), child: child!, ); }, // 其余原有配置保持不变 home: const MyHomePage(), )
注:Flutter 3.10及以上版本已弃用
textScaleFactor,替换为textScaler属性,对应设置为TextScaler.linear(1.0)即可达到相同效果。
内容的提问来源于stack exchange,提问作者moralejaSinCuentoNiProverbio
相关产品推荐
相关产品推荐

