uni-app list滑动组件下 ios高度样式混乱 安卓正常
uni-app list滑动组件下 ios高度样式混乱 安卓正常
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Windows | 10 | HBuilderX |
产品分类:uniapp/App
PC开发环境操作系统:Windows
PC开发环境操作系统版本号:windows 10
HBuilderX类型:正式
HBuilderX版本号:3.1.19
手机系统:iOS
手机系统版本号:iOS 12.1
手机厂商:苹果
手机机型:11
页面类型:nvue
打包方式:离线
示例代码:
<div ref="item" class="item" :style="{height:wHeight+'px'}">
<view>
<jVideo v-if="Math.abs(k-i)<=1" :state="item.state" :src="item.playUrl" :img="item.vodPic" :boxStyle="boxStyle"></jVideo>
</view>
</div>
————————————————————
this.wHeight = uni.getSystemInfoSync().screenHeight;
this.boxStyle.height = this.wHeight;
操作步骤:
<div ref="item" class="item" :style="{height:wHeight+'px'}">
<view>
<jVideo v-if="Math.abs(k-i)<=1" :state="item.state" :src="item.playUrl" :img="item.vodPic" :boxStyle="boxStyle"></jVideo>
</view>
</div>
————————————————————
this.wHeight = uni.getSystemInfoSync().screenHeight;
this.boxStyle.height = this.wHeight;
预期结果:
每次滑动 高度都应该正常整屏展示
实际结果:
ios第一个视频正常整屏展示,再往下滑动高度会递减 最后导致一个屏幕出现多个视频 再上下滑动高度样式混乱
bug描述:
(iphone11测试问题 nvue uniapp模式)用uniapp list(nvue)专用组件上下滑动事件,获取高度给他组件赋值样式,高度(是官方api获取的设备高度,安卓正常)苹果有兼容性问题,每次上下滑动高度或递增递减,类似问题像ios端软件盘高度与输入框弹起不兼容 正常ios端给其负的高度(cursor-spacing属性)就可以兼容ios,(已测试把下方tabber注释掉 没有tabber的情况下上下滑动 iphone6/11视频高度每次正常的)以此办法ios端获取高度减去tabber下方的高度 iphone6可以正常解决 上下滑动没问题,但是iphone11手机还是不兼容 不知道是否是刘海屏高度导致还是其他兼容性问题! 烦请给其解决方案 急急急!!!
更多关于uni-app list滑动组件下 ios高度样式混乱 安卓正常的实战教程也可以访问 https://www.itying.com/category-93-b0.html
更多关于uni-app list滑动组件下 ios高度样式混乱 安卓正常的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在iOS上使用uni.getSystemInfoSync().screenHeight获取屏幕高度时,需要注意这个值是包含状态栏和安全区域的完整屏幕高度。在iPhone 11等刘海屏设备上,实际可用高度需要减去安全区域。
建议改用以下方式获取可用高度:
const systemInfo = uni.getSystemInfoSync()
this.wHeight = systemInfo.windowHeight
this.boxStyle.height = this.wHeight
如果仍有问题,可以进一步处理安全区域:
const systemInfo = uni.getSystemInfoSync()
const safeArea = systemInfo.safeArea
this.wHeight = safeArea.height
this.boxStyle.height = this.wHeight
另外,在nvue页面中,建议使用flex:1布局来确保组件正确填充可用空间,而不是硬编码高度。可以尝试将外层容器样式改为:
.item {
flex: 1;
}
如果涉及到底部TabBar,还需要减去TabBar的高度:
const systemInfo = uni.getSystemInfoSync()
this.wHeight = systemInfo.windowHeight - tabBarHeight
this.boxStyle.height = this.wHeight

