app横屏状态rpx数值不正确
app横屏状态rpx数值不正确
示例代码:
{
"globalStyle": {
"pageOrientation": "landscape",
"rpxCalcMaxDeviceWidth": 2048,
"rpxCalcBaseDeviceWidth": 2048,
"rpxCalcIncludeWidth": 750,
"dynamicRpx": true
}
}
操作步骤:
- 退出app重启后rpx显示不正确
预期结果:
- 退出app重启rpx正常显示
实际结果:
- 不正确
bug描述:
app横屏状态rpx数值不对,编译后首次启动大小正常,750rpx宽度可以100%展示的,但是退出app重启后,只剩下一半左右了
5 回复
想到解决方法了,rpx数值不对只是在app重新打开时首页有问题,创建一个空页面index2当作app的首页,
<script setup> import { onLoad } from '[@dcloudio](/user/dcloudio)/uni-app'; onLoad(()=>{ uni.reLaunch({ url:'/pages/index/index' }) console.log('重新打开了'); }) </script>在onLoad时,跳转到真正的index页面,就可以解决首页rpx失效的问题,
期待官方正视和解决这个问题,为后期开发带来愉快的体验
找到解决方法了吗?我这边也出现了这样的问题,代码没问题,盒子width: 126rpx;height: 170rpx;退出app重启后,变的特别小,
我在平板横屏,有时候放置时间长,app自动退出登录重新进入之后,发现整个页面整体缩小,就是rpx 比实际小了
“rpxCalcMaxDeviceWidth”: 1920, “rpxCalcBaseDeviceWidth”: 375, “rpxCalcIncludeWidth”: 750
根据您描述的问题,这确实是uni-app在横屏模式下rpx计算的一个已知问题。以下是具体分析和解决方案:
- 问题原因:
- 横屏模式下设备宽度计算可能不正确
- rpx动态计算(dynamicRpx)在横屏重启后可能失效
- 设备方向改变后rpx基准值没有正确重置
- 解决方案:
{
"globalStyle": {
"pageOrientation": "landscape",
"rpxCalcMaxDeviceWidth": 2048,
"rpxCalcBaseDeviceWidth": 2048,
"rpxCalcIncludeWidth": 750,
"dynamicRpx": false // 关键修改点
}
}
- 其他建议:
- 确保manifest.json中也配置了横屏设置
- 考虑使用px替代rpx或媒体查询处理横屏布局
- 检查是否有自定义导航栏影响布局计算
- 临时解决方案: 在onShow生命周期中手动重置rpx计算:
onShow() {
uni.getSystemInfo({
success: (res) => {
// 强制触发rpx重新计算
}
})
}