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();

