网站做几个域名比较好,陕西省建设厅网站月报,微信微信,营销策划方案论文如果我们不特意设置#xff0c;flutter开发的app他的字体大小是会跟着系统设置的字体大小而改变#xff0c;这样就会导致页面出现布局错乱问题#xff0c;那么如何解决这个问题呢#xff1f;我也搜索了相关资料#xff0c;有两个常用也是网络上搜集到比较多的方法#xf…如果我们不特意设置flutter开发的app他的字体大小是会跟着系统设置的字体大小而改变这样就会导致页面出现布局错乱问题那么如何解决这个问题呢我也搜索了相关资料有两个常用也是网络上搜集到比较多的方法还有一个是我自己使用的比较简单粗暴但是我认为方便快捷的方法。
先来看常用方法
方案一、自定义组件继承Text组件在使用的时候直接使用FixedText来定义
import package:flutter/material.dart;
import package:flutter_app2/View/FixedSizeText.dart;class FixedText extends Text {const FixedText(String data, {Key key,TextStyle style,StrutStyle strutStyle,TextAlign textAlign,TextDirection textDirection,Locale locale,bool softWrap,TextOverflow overflow,double textScaleFactor 1.0,int maxLines,String semanticsLabel,}) : super(data,key:key,style:style,strutStyle:strutStyle,textAlign:textAlign,textDirection:textDirection,locale:locale,softWrap:softWrap,overflow:overflow,textScaleFactor:textScaleFactor,maxLines:maxLines,semanticsLabel:semanticsLabel);
}
方案二、修改全局配置
在main函数中设置MediaQuery.of(context).copyWith(textScaleFactor: 1.0)就可以使得文本不随着系统改变 //在main函数中设置builder
MaterialApp(home:Home(),builder: (context, widget) {return MediaQuery(///设置文字大小不随系统设置改变data: MediaQuery.of(context).copyWith(textScaleFactor: 1.0),child: widget,);},
), 方案三直接修改Text组件
因为在发现这个问题的时候代码已经比较庞大并且多处使用Text挨个替换肯定是不合理的因此我直接修改了Text的源代码设置textScaleFactor默认值为1.0
因为我肯定是整体都不能让他随着系统改变而改变所以直接干脆修改源代码默认不能改变简单、粗暴且有效。