大帅锅
大帅锅
  • 发布:2020-02-21 19:48
  • 更新:2021-09-24 13:49
  • 阅读:4009

横竖屏切换后页面样式错乱

分类:uni-app

我的uniapp应用在App.vue里面加了强制竖屏的代码
//#ifdef APP-PLUS
//强制竖屏
plus.screen.lockOrientation('portrait-primary');
//#endif

我现在有A、B、C三个页面,
A和C就是普通的竖屏页面;

B页面是使用plus.webview.create创建webview嵌套的页面,而且进入该页面必须强制横屏
这是B页面强制横屏和退出页面切回竖屏的代码
onShow() {
// #ifdef APP-PLUS
//强制横屏
if (this.optionParams.landscape) {
plus.screen.lockOrientation('landscape-primary');
}
// #endif
},
onBackPress() {
// #ifdef APP-PLUS
//返回上一个页面的时候,如果是横屏强制回竖屏
if (this.optionParams.landscape) {
plus.screen.lockOrientation('portrait-primary');
}
// #endif
},
onHide() {
// #ifdef APP-PLUS
//跳转新页面的时候,如果是横屏强制回竖屏
if (this.optionParams.landscape) {
plus.screen.lockOrientation('portrait-primary');
}
// #endif
}

我现在A进入B页面后,退回到A页面,

然后再从A页面进入到C页面,C页面的样式就错乱了,文字样式全部变了,而且一些view的宽高也变了。不知道是什么东西导致了这个样式错乱!!!

我从C页面退出后,再进入C页面,这次C的样式就完全没有问题了。找了很久没找到是哪里导致的?
所以麻烦告知怎么解决,谢谢了!!!

2020-02-21 19:48 负责人:无 分享
已邀请:
建建大魔王

建建大魔王 - 传金陵副将马国成,原顺天府伊隆科多,上堂回话

我的情况也是一样 A -> B(横屏页) -> A -> C 即从横屏页返回后, 下一个页面C必定页面错乱, 重进后又恢复正常。
多次尝试无果后,直接就暴力解决了:
监听从横屏页返回后, 我跳转到一个空白页D, 空白页D在返回, 类似一个中转, 手动制造一次重进的操作
即 A -> B(横屏) -> A -> D(横屏B返回A后立即跳转空白页D,在返回A) -> A -> C (此时页面正常), 跳转空白页从肉眼看无感知

爱吃鱼的靖哥哥

爱吃鱼的靖哥哥 - 行走在全栈路上的码农

解决了没兄弟,我也是这样的问题,这个坑真的好难填啊

  • NightMing

    settimeout延迟1500 试试

    2020-11-27 11:58

大帅锅

大帅锅 (作者)

我把HBuilderX更新到新版后没出现了

1***@qq.com

1***@qq.com - 一起学习,共同进步

求解

1***@qq.com

1***@qq.com

有谁解决了这个问题吗

Gdc

Gdc

原来这么多人碰到了这个问题啊,现在我的版本是2.7.9 又出现了这个问题。

7***@qq.com

7***@qq.com

你好,想问一下 app竖屏切换横屏样式错乱 跟设计图差距很大是什么原因?

  • 大帅锅 (作者)

    我之前是更新到最新的HBuilderX就没出现样式错乱的问题了。这应该是uniapp的问题吧,好多人都出现了,上面有人提出了解决方案,您可以看看

    2020-08-21 15:01

8***@qq.com

8***@qq.com

我的也是这种情况,这个问题怎么决绝啊???

  • 大帅锅 (作者)

    这个都不知道怎么解决了,有的换单位(rpx换px)可以解决,有的更新HBuidlerX可以解决。官方也没给一个具体的方案,我之前更新HBuiderX就解决了的。你可以试试一楼提供的方式,看看能不能解决

    2020-08-26 14:25

  • 7***@qq.com

    我的解决方法是 竖屏跳转横屏页面的时候 加一级中间页面添加横屏,然后再跳转到想要跳转的页面

    2020-09-10 11:48

圣名科技

圣名科技

到现在 官方有处理了吗?

  • zzssd

    我来我来,这个问题我爬出来了uni-app转安卓有个很严重的bug。这个单个页面需要强制横屏,在onLoad,onReady,onShow阶段强制横屏都会导致它之前或者之后的页面产生布局异常(无解)。

    所以,你要在页面完全加载完后才横屏。所以最简单的就是在onload阶段,setTimeout 大概800毫秒或者一秒,再横屏。

    2021-12-06 14:38

该问题目前已经被锁定, 无法添加新回复