weex页面在后台刷新导致尺寸计算错误,页面错乱

一、问题

在weex页面打开一个横屏app(如王者荣耀),等待刷新完毕再回到weex页面,发现页面渲染出错,重新刷新后就没问题了

二、示例页面

http://dotwe.org/vue/e7916366...

三、重现步骤

  1. 点击第一个绿色块
  2. 切换到任意横屏app
  3. 出现"change width"的toast之后切换会weex页面发现排版出错
  4. 再次出现toast之后 页面正常

四、出现问题代码

WXViewUtils.java中

  public static int getScreenWidth(Context ctx) {
    if(ctx!=null){
      Resources res = ctx.getResources();
      mScreenWidth = res.getDisplayMetrics().widthPixels;
      if(WXEnvironment.SETTING_FORCE_VERTICAL_SCREEN){
        mScreenHeight = res
                .getDisplayMetrics()
                .heightPixels;
        mScreenWidth = mScreenHeight > mScreenWidth ? mScreenWidth : mScreenHeight;
      }
    } else if(WXEnvironment.isApkDebugable()){
      throw new WXRuntimeException("Error Context is null When getScreenHeight");
    }
    return mScreenWidth;
  }

在横屏app中,weex在后台计算屏幕宽度变成了屏幕高度,导致计算错误

五、出现问题截图

clipboard.png
clipboard.png
clipboard.png

clipboard.png

阅读 4k
2 个回答

原生里面获取屏幕宽度,当横屏状态下屏幕宽度就是竖屏时候的高度

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进