【发布时间】:2019-03-21 01:57:03
【问题描述】:
我不想为我的 Flutter 应用完全禁用 iOS 动态类型,因为当用户将全局文本大小设置得太高时,它会完全破坏我的一些布局。
我问了关于如何完成此here 的问题,并得到了我想实施的答案。
return MediaQuery(
child: your-widget-here,
data: MediaQuery.of(context).copyWith(textScaleFactor: 1.0),
);
只是好奇使用 DRY 原则实现这一点的最佳方法,以便我可以在整个代码中重复使用它。目前,我只是创建了一个 Utils 类,编写了一个类似这样的方法
Widget unscaledWidget(Widget widget, BuildContext context){
return MediaQuery(
child: widget,
data: MediaQuery.of(context).copyWith(textScaleFactor: 1.0),
);
}
然后在我的应用程序中页面的构建方法中,而不是调用
return Scaffold(...);
在做
Scaffold scaf = Scaffold(...);
return Utils().unscaledWidget(scaf, context);
我应该有更好的方法来完成这项工作吗?只是不确定这是 Dart 的最佳实践。
【问题讨论】: