uni-app app横屏启动设置锁定竖屏获取的状态栏值不对

uni-app app横屏启动设置锁定竖屏获取的状态栏值不对

示例代码:

app横屏启动设置plus.screen.lockOrientation(“portrait-primary”)锁定竖屏,使用uni.getSystemInfoSync().statusBarHeight获取的状态栏值不对
正常获取的值为55,而先全屏启动在设置为竖屏后获取到的值为24

操作步骤:

必现

预期结果:

获取竖屏正确的状态栏的值

实际结果:

获取到的状态栏高度值不正确

信息类别 信息内容
产品分类 uniapp/App
PC开发环境 Windows
HBuilderX 正式
HBuilderX版本 4.76
手机系统 Android
手机系统版本 Android 15
手机厂商 摩托罗拉
手机机型 XT2363-4
页面类型 vue
vue版本 vue2
打包方式 云端
项目创建方式 HBuilderX

更多关于uni-app app横屏启动设置锁定竖屏获取的状态栏值不对的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于uni-app app横屏启动设置锁定竖屏获取的状态栏值不对的实战教程也可以访问 https://www.itying.com/category-93-b0.html


这是一个常见的横竖屏切换时的状态栏高度获取问题。在横屏启动后立即锁定为竖屏时,系统信息可能还未完全更新。

建议在锁定屏幕方向后添加延迟再获取状态栏高度:

plus.screen.lockOrientation("portrait-primary");

// 添加短暂延迟确保屏幕方向已完全切换
setTimeout(() => {
  const systemInfo = uni.getSystemInfoSync();
  console.log('状态栏高度:', systemInfo.statusBarHeight);
}, 100);

或者监听屏幕方向变化事件:

plus.screen.lockOrientation("portrait-primary");

uni.onWindowResize(() => {
  const systemInfo = uni.getSystemInfoSync();
  console.log('状态栏高度:', systemInfo.statusBarHeight);
});

另外,也可以直接使用plus API获取状态栏高度:

const statusBarHeight = plus.navigator.getStatusbarHeight();
回到顶部