zoukankan      html  css  js  c++  java
  • Flutter 在使用MaterialApp之前获取MediaQueryData realease模式下会失效

    以下做法debug模式下是有效的,但是在realease模式下会有bug:

    请使用以下做法:

    Flutter 在使用MaterialApp之前获取MediaQueryData 2

    在使用 flutter_screenutil 这个插件的时候,需要注册

     ScreenUtil.init(context,  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,  750, height: 1560, allowFontScaling: true);
        return MyApp();
      }
    }
  • 相关阅读:
    动手动脑之异常处理
    git一些概念
    jquery each函数使用
    数据库客户端
    plotly.js
    网站跳转汇总
    jquery 实现间隔运行
    学习 在线调试
    Robot限制字典的key大写的class
    Gerrit 相关
  • 原文地址:https://www.cnblogs.com/hbolin/p/12564494.html
Copyright © 2011-2022 走看看