一、出现问题的步骤重新:登陆页-》tabbar主页-》侧滑菜单退出登陆-》登陆页-》tabbar主页-》侧滑菜单点击菜单项,调用hide方法,侧滑无法关闭
二、具体解决办法:
1、侧滑菜单的subnvue是公共的,目录为platforms\app-plus\subNVue\left-drawer;
2、程序入口页是登陆页,登陆成功后通过uni.reLaunch到含tabbar的主页,tabbar有四个页面,每个页面都有subnvue侧滑菜单,subNVues节点中id分别为leftDrawerTab1、leftDrawerTab2、leftDrawerTab3、leftDrawerTab4;
3、tabbar页面
3.1、在onNavigationBarButtonTap导航按钮监听中,通过getSubNVueById获取到subnvue,并通过subnvue的show方法显示侧滑菜单
const leftDrawerTab1 = uni.getSubNVueById('leftDrawerTab1')
leftDrawerTab1.show('slide-in-left', 200)
3.2、在onload方法中,通过getSubNVueById获取到subnvue,并通过subnvue的hide方法隐藏侧滑菜单,解决第一次加载可能会默认显示的问题
uni.getSubNVueById('leftDrawerTab1').hide('slide-out-left',200)
4、侧滑菜单的subnvue页中,在点击菜单项时,通过subnvue的hide方法,和plus.webview.WebviewObject的hide方法关闭侧滑,通过plus.webview的all方法,找到所有的webview,然后根据第二步设定的id,找到所有的侧滑菜单的view,通通关一遍。
uni.getCurrentSubNVue().hide('auto')
// 获取所有Webview窗口
var wvs = plus.webview.all();
for(var i=0; i<wvs.length; i ){
if(wvs[i].id.indexOf('leftDrawerTab') != -1) {
wvs[i].hide()
}
}
三、效果:代码比较难看,但是目前好像管用。
0 个评论
要回复文章请先登录或注册