麦狐人
麦狐人
  • 发布:2023-03-30 16:58
  • 更新:2024-01-30 16:08
  • 阅读:569

【报Bug】在横屏的设备上把app底部导航栏隐藏(虚拟按键)后,打开页面出现高度异常(不能全屏显示)

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: 12.5.1

HBuilderX类型: 正式

HBuilderX版本号: 3.8.12

手机系统: Android

手机系统版本号: Android 7.1.1

手机厂商: 商米

手机机型: T2

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

示例代码:
// 没有任何逻辑代码,就是简单的uni-app中自带的页面跳转  
uni.navigateTo()  

操作步骤:

从A到B再到C页面

预期结果:

最后出现全屏的红色C页面

实际结果:

最后出现红色C页面和底部48px的蓝色B页面,见附件

bug描述:

demo为3个干净的空页面ABC,背景色分别为黄色、蓝色、红色

在横屏设备上把app设置为霸屏模式(全屏,隐藏底部导航栏(虚拟按键) )后

app启动页为A,点击前往B页面,再点击前往C页面,跳转方式均为:navigateTo。

A和B页面都是满屏的背景色,但是最后C页面的高度并不是屏幕高度,少了48px,下面会多一个48px的高度显示了B页面的底部

我用uni.getWindowInfo分别在3个页面上打印,发现只有A页面的screenHeight和windowHeight是751,B和C页面的都是703,少了48px。

所以猜测是不是dcloud在获取屏幕高度的时候有问题,在全屏的这种情况下

2023-03-30 16:58 负责人:DCloud_Android_ST 分享
已邀请:
yuje

yuje

现在解决了吗

DCloud_Android_ST

DCloud_Android_ST

测试项目提供下 和操作步骤

  • 麦狐人 (作者)

    最新回复下已经给出源码及视频

    设备开启全屏(霸屏模式)下

    2023-05-31 16:55

  • DCloud_Android_ST

    回复 麦狐人: 收到 我们这边需要一段时间寻求设备

    2023-05-31 17:07

  • DCloud_Android_ST

    回复 麦狐人: 我这边平板设备没有“霸屏模式”配置项 我将应用设置全屏 但是为能复现你的描述的问题 你那边有其他设备可以复现问题吗

    2023-06-01 15:38

  • 麦狐人 (作者)

    回复 DCloud_Android_ST: 我们有设备可以复现,如果需要配合,可以随时联系

    2023-06-07 10:00

  • DCloud_Android_ST

    回复 麦狐人: 提供下QQ或者钉钉即时通讯

    2023-06-07 11:22

  • 麦狐人 (作者)

    回复 DCloud_Android_ST: QQ:124552053

    2023-06-14 15:57

麦狐人

麦狐人 (作者)

源码及操作视频见附件

m***@qq.com

m***@qq.com

真他妈服了,这bug这么明显,翻了论坛,我翻到20年,20年都有人提出了,现在还没解决,真他妈垃圾,20年的那篇帖子说去掉跳转动画就好了,这也太恶心了,垃圾uniapp,里面解答的就会说 没有设备,没有设备,你他妈随随便便找个设备就能复现

  • 麦狐人 (作者)

    哈哈 冷静冷静。毕竟免费开源的东西,官方可能没精力管那么多。我是从APICloud转过来的,有点想简单了,大部分是好的,官方能力如何不了解,但是解决问题的速度确实不敢恭维。。

    2023-06-25 10:04

  • l***@qq.com

    我也正好遇到这个问题, 之前还有遇到过权限的问题, 很多他们也都是有方案的, 奈何文档上也没写出来, 论坛上也没啥人气

    2023-07-31 15:46

  • 麦狐人 (作者)

    回复 l***@qq.com: 解决了吗?

    2023-08-29 10:03

Mainzxx

Mainzxx

我也碰到了,一直没等到官方来处理

星星不怕黑

星星不怕黑

20年那个帖子好像就是我发的。解决办法就是使用关闭式跳转uni.reLaunch() 不要使用uni.navigateTo() @Mainzxx

  • Mainzxx

    感谢回复,uni.reLaunch() 是可以,目前看来只能用这个办法了

    2023-11-21 11:10

失去梦想的咸鱼

失去梦想的咸鱼

遇到同样的问题,工业用的安卓系统。

1***@163.com

1***@163.com

解决了没 我也遇到了

  • 2***@qq.com

    我这边有一个设备,在安卓系统上设置自动隐藏导航按钮。进入程序之后,我发现用手指从下向上滑动,唤出导航按钮,然后导航按钮会挤压一下页面,然后等导航自动隐藏之后,页面会恢复原状。然后这个程序在关闭之前都不会再出现底部有留白的问题,你看要不要试一下。如果可以的话,我这边的解决方案就是,让程序启动的时候通过代码自动的唤醒导航按钮,然他去挤一下页面。

    2024-01-28 17:20

  • 2***@qq.com

    回复 2***@qq.com: 我感觉我这边能正常的最终原因,应该是程序启动了之后页面被导航按钮挤过,也就是说程序完全启动之后,会再次去获取视窗的高度。我这边似乎在进入首页之后,再去隐藏导航按钮也能解决这个问题。

    2024-01-28 17:34

m***@qq.com

m***@qq.com

已经转flutter了,稳定好用,谷歌出品,性能不需要考虑,插件也够,唯一需要的就是要自学一段时间,uniapp就做做html了

要回复问题请先登录注册