经过无数次调试,查询了官方的文档,基本确定这个是一个bug,但是不知道是否判断正确,现在把问题描述一下,希望能尽快回复吧,已经弄了一个星期了,就为了实现一个简单的底部导航菜单!截图如下:
底部共4个菜单加上中间一个圆弧形状菜单,现在实现方式是,整体页面是一个webview,底部四个文字菜单 在app启动预加载了个webview并append到 主webview。中间加号是采用view控件加载了一张图片,加载图片和创建view的代码主要如下:
/**
* 创建view
*/
function addView(bitmap){
var screenpx=getScreen();
var view = new plus.nativeObj.View("index-addicon",{
position:"dock",
width:(screenpx.w/5)+"px",
height:(screenpx.w/5)+"px",
left:(screenpx.w/2-(screenpx.w/10))+"px",
top:(screenpx.h-70)+"px"
});
view.drawBitmap(bitmap,{
top:'0px',
left:'0px',
width:'100%',
height:'100%'
}, {
top:'auto',
left:'auto',
width:'100%',
height:'100%'
});
plus.webview.getLaunchWebview().append(view);
//不能写上这坑爹的一句话,要不然调试5天
// view.show();
view.setTouchEventRect();
view.addEventListener("click", function(e){
alert("点击了加号");
}, false);
}
如上代码,在bitmap加载完成后调用的addView,传入bitmap。view的定位根据屏幕宽度和高度来动态计算,定位于底部中间。创建完成后,append到了LaunchWebview。然后,圆形的添加按钮显示出来了。
问题来了:当点击下面的4个文字菜单,view会消失掉,这是为什么?点击文字菜单做了一个很简单的事情,就是显示点击菜单对应的子webview,调试后,发现就是plus.webview.show(targetTab,"fade-in",220);这句话引起的。希望尽快有人看看这个问题,一个星期了,崩溃了啊!
补充:
当把view的position属性换为static的时候,点击切换菜单,加号的图标不会消失掉,但是又被子webview遮住了,如下图: