flutter - 如何正确管理 Flutter 应用中的全局 textScaleFactor?
问题描述
Flutter 应用程序对系统大文本做出反应,使所有 Text 小部件都非常大。我想限制 Text 小部件的 textScaleFactor 但我想在全局范围内而不是在我正在使用的每个 Text 小部件中进行。
现在启用大文本后,我得到了例外
扑来:══╡渲染图书馆捕获的例外╞═══════════════════════════════════════ ══════════════════flutter:布局时抛出如下信息:flutter:一个RenderFlex在底部溢出了14个像素。
什么是正确的方法?一种方法是创建一些包装小部件而不是使用文本,但也许可以通过其他方式解决?
解决方案
这个解决方案是在Google I/O'19期间提出的(大约 20 分钟):
MaterialApp(
builder: (BuildContext context, Widget child){
final MediaQueryData data = MediaQuery.of(context);
return MediaQuery(
data: data.copyWith(
textScaleFactor: data.textScaleFactor * (_isPassive ? 2 : 1)
),
child: child,
);
},
如果您希望所有内容都有一个固定的textScaleFactor
,则可以替换data.textScaleFactor * (_isPassive ? 2 : 1)
为单个数字。1.0
将使您的设计始终遵循您fontSize
的 s。
推荐阅读
- google-apps-script - 绘制边框脚本的应用不一致
- java - Mono.subscriberContext() 返回旧上下文
- vba - 如何使用 VBA 将滞后添加到 MS Project 中的前置字段
- c# - 未处理的异常:System.BadImageFormatException:无法加载从 RoslynCompileSample 加载的文件或程序集 '0 字节,
- yii2 - Yii2 验证规则,用于通过另一个表比较电子邮件并检查插入和更新的唯一性
- java - 将字符串转换为地图
在 Java 8 中 - batch-file - 使用批处理文件命令读取文本文件内容
- ssl - 在双向 SSL 中,两个证书(客户端/服务器)都必须使用相同的工具构建
- html - 我的 flex 容器中的锚标记破坏了我的布局
- javascript - 如何通过在 dialogflow 上使用 javascript 在 line/msg 等社交媒体上向客户发送网站状态和报告?