枫桥居APP
枫桥居APP
  • 发布:2017-09-13 22:12
  • 更新:2017-09-14 11:36
  • 阅读:2039

感觉像是个bug,就是在ios和Android平台下nativeObj创建的header位置不对

分类:HTML5+

下面这个是首页绘制的头部


    //绘制头部   
    headView = plus.nativeObj.View.getViewById('indexBar')  
    if(!headView) {  
        headView = new plus.nativeObj.View('indexBar', {  
            height: '45px',  
            position: 'dock',  
            dock: 'top'  
        });  
    }  
    headView.drawText(data.indexName, {}, {  
        color: '#fff',  
        size: '16px'  
    }, 'indexTitle');  
    self.append(headView);  

这个是创建子页面的代码


//预加载子webview   
            var subWebview = tabbar.options.subpages[i]  
            if(!plus.webview.getWebviewById(subWebview.url)) {  
                var styles = {  
                    top: '0px',  
                    bottom: '51px',  
                    'titleNView': {  
                        'backgroundColor': '#42BD56',  
                        'titleText': subWebview.title,  
                        'titleColor': '#fff'  
                    }  
                }  
                var wb = plus.webview.create(subWebview.url, subWebview.url, styles);  
                wb.hide();  
                self.append(wb)  

在安卓下,子页面会完全覆盖首页;

但在ios下好像是追加到首页去了

---------------- 分割线 ---------------------

我的处理方法,不知道是否最好的方法:
在ios下重绘首页header的高度,感觉这样性能会很差~


        //显示子webview  
        if(index > 0) {  
            //隐藏首页header  
            if(mui.os.ios)  
            headView.setStyle({  
                height: '0'  
            })  
            plus.webview.show(tabbar.options.subpages[index - 1].url)  
        } else {  
            //显示首页header  
            if(mui.os.ios)  
            headView.setStyle({  
                height: '45px'  
            })  
        }  
2017-09-13 22:12 负责人:无 分享
已邀请:
DCloud_IOS_XTY

DCloud_IOS_XTY

第一个问题:
如果页面有dock的元素其他元素从dock元素的下边开始排版
第二个问题:
hide之后没有顶上去是个bug,该问题会尽快修复

枫桥居APP

枫桥居APP (作者)

本来在安卓和ios下性能很好的,为了修正这个bug,现在切换时候有点闪了~崩溃

DCloud_UNI_CHB

DCloud_UNI_CHB

没太明白,不过子页面应该不需要原生标题了。
另外,首页的原生标题也可以直接从manifest.json中配置,执行时机更早

枫桥居APP

枫桥居APP (作者)

@DCloud_MUI_CHB 怎么描述呢! 我昨晚发现了问题:

创建nativeObj的时候,设置了 {position: 'dock', dock: 'top'}

headView = new plus.nativeObj.View('indexBar', {  
height: '45px',  
position: 'dock',  
dock: 'top'  
});  

隐藏时候在ios下有bug

//ios 下height依旧为45px  
headView .hide()

只要在ios下,设置height就可以了,但这样没此点击tabbar就要重绘header感觉效率很低

if(mui.os.ios){  
headView.setStyle({  
height: '0'  
})  
}
枫桥居APP

枫桥居APP (作者)

@DCloud_MUI_CHB 因为每个子页面的头部都有单独的操作菜单,如果只是单纯的显示文字,可以通过切换文字了实现!
我是每个子页面都单独加header,然后也是单独绘制菜单,单独监听菜单事件和处理相关流程,不能把所有代码放到首页,不然首页会巨卡

该问题目前已经被锁定, 无法添加新回复