在使用 flutter_screenutil 这个插件的时候,需要注册
ScreenUtil.init(context, width: 750, height: 1560, allowFontScaling: true);
这句话,需要放那里呢?一般情况下都是放到MaterialApp之后的HomePage上。
这样子就出现一个问题了。我需要在MaterialApp配置主题上就需要用到 flutter_screenutil 插件
ScreenUtil().setSp(getPrimaryTextSize())
所以必须需要将 ScreenUtil.init 放到MaterialApp之前。
代码如下:
void main() { runApp(RunApp()); } class RunApp extends StatefulWidget { @override _RunAppState createState() => _RunAppState(); } class _RunAppState extends State<RunApp> { @override Widget build(BuildContext context) { return MediaQuery( data: MediaQueryData.fromWindow(ui.window), child: ScreenApp(), ); } } class ScreenApp extends StatefulWidget { @override _ScreenAppState createState() => _ScreenAppState(); } class _ScreenAppState extends State<ScreenApp> { @override Widget build(BuildContext context) { // 注册 ScreenUtil.init(context, width: 750, height: 1560, allowFontScaling: true); return MyApp(); } }