详细问题描述
(DCloud产品不会有明显的bug,所以你遇到的问题大都是在特定环境下才能重现的问题,请仔细描述你的环境和重现方式,否则DCloud很难排查解决你的问题)
[内容]
使用subnvue做自定义navigationBar,page.json代码如下:
{
"path": "pages/deviceDetails/deviceDetails",
"style": {
"navigationStyle": "custom",
"app-plus": {
"scrollIndicator": "none",
"softinputNavBar": "none",
"titleNView": false,
"bounce": "none",
"popGesture": "none",
"subNVues": [{
"id": "devdetailnav",
"type":"navigationBar",
"path": "pages/deviceDetails/subnvue/devdetailnav",
"style": {
"width": "100%",
"height": "248upx"
}
}]
}
}
这里设置的style中height170不起作用,页面运行起来还是默认的高度。好吧,自己在代码中再设置一次,
在vue文件中onShow中代码如下:
onShow() {
let _this = this;
setTimeout(function() {
uni.getSubNVueById('devdetailnav').setStyle({
top: '0px',
left: '0px',
width: '100%',
height: uni.upx2px(248) + 'px'
});
}, 200);
}
这样执行后navigationBar的高度正确了,但是问题来了。
安卓端,navigationBar下面的页面还是从navigationBar默认高度(貌似100upx,没仔细查)开始,这样导致了页面开始的一部分被遮挡住了。那么我padding一下让出高度,这样初始页面正确了,但是input获取焦点后弹出键盘页面resize后页面有乱了,这时页面的初始位置又从设置navigationBar的高度处开始,因为初始化的时候padding了一个高度的原因导致页面整体下移了。我在onresize中重置padding的数值页面抖动厉害。但是onresize一次之后就完全正常了。
我觉得应该是一个bug,希望官方能给个解决办法。
ios没有这个问题。
另外,subnvue不是在css中使用background-image指向一个图片文件,不论是本地文件还是网络文件或者是base64,
该属性都不起作用,到时官方demo中例子:background-image: linear-gradient(to right, #a80077, #66ff00);可以使用。
能不能明确说明一下background-image的注意事项?
[步骤]
[结果]
[期望]
可以通过style设置高度,然后navigationBar下面的页面从该高度开始渲染。
[如果语言难以表述清晰,拍一个视频或截图,有图有真相]
IDE运行环境说明
HBuilderX 开发uni-app
[IDE版本号]
2.0.1
[windows版本号]
[mac版本号]
uni-app运行环境说明
app
[运行端版本号]
HBuilderX创建
新的自定义组件
App运行环境说明
[Android版本号]
android6.0
[iOS版本号]
ios12
[手机型号]
[模拟器型号]
附件
[IDE问题请提供HBuilderX运行日志。菜单帮助-查看运行日志,点右键打开文件所在目录,将log文件压缩成zip包上传]
[App问题请提供可重现问题的代码片段,你补充的细一点,问题就解决的快一点]
[App安装包或H5地址]
[可重现代码片段]
联系方式
83528667
0 个回复