如何解决防止更改基于文本大小的设备屏幕大小 Flutter
我在 Flutter 的每个 Text 小部件中使用 textScaleFactor,但如果用户从设备设置更改显示或字体大小。它会更改整个应用程序的所有文本小部件的大小。
有什么办法可以防止在主函数、MaterialApp 或 ThemeData 的设备设置中监听文本大小?
我不想使用 MediaQuery,因为我的应用非常大,而且我现在无法更改每个文本小部件。
谢谢
解决方法
您可以像这样覆盖系统提供的文本比例因子:
MaterialApp(
builder: (BuildContext context,Widget child) {
return MediaQuery(
data: MediaQuery.of(context).copyWith(textScaleFactor: 1.0,),//set desired text scale factor here
child: child,);
},title: 'Flutter Demo',theme: ThemeData(
primarySwatch: Colors.blue,home: MyHomePage(title: 'Flutter Demo Home Page'),);
这会将整个应用程序中的系统文本比例因子覆盖为您选择的因子。
但这是一个非常糟糕的做法。您不应该依赖覆盖系统/可访问性设置来修复您的 ui。有很多设备有很多外形、屏幕分辨率、密度等。解决这个问题的正确方法是创建一个响应式 ui,它可以很好地适应不同的屏幕和设置。一个好的起点是用于响应式 ui 的 official flutter site 和 auto_size_text 包,它可以为您节省缩放文本的很多麻烦。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。