说点题外话:这个SlidingMenu是真的恶心,功能远没有NavigationView强大,而且bug奇多。
正题:最开始是因为使用SlidingMenu只设置了出现的范围和事件,并未设置怎样关闭,后来查了一下知道了是使用
slidingMenu.setTouchModeBehind(SlidingMenu.TOUCHMODE_FULLSCREEN);//设置可使菜单滑动关闭的范围
然后就遇到了非常蛋疼的事情:
我放在Menu里的Listview里面的item点不了了,这可是大问题,然后百度了也没百度出啥东西,最后突发奇想:
我不调用这个方法,自己重写Activity的onTouchEvent方法不行吗,为啥一定要调用这破方法。
然后......就解决了
但要注意,此方法只适合纵向的ListView,想要横向滑动的ListView和这个不冲突解决不了。
附上关键代码:
@Override
public boolean onTouchEvent(MotionEvent event) {
float x=0;
if(slidingMenu.isMenuShowing()) { //判断slidingMenu是否展开,不展开就不调用此方法,不影响其他操作
if (event.getAction() == MotionEvent.ACTION_DOWN) {
x = event.getX();//获取当手指按在屏幕时的x坐标
}
if (event.getAction() == MotionEvent.ACTION_UP) {
float x1 = event.getX();//获取当手指离开屏幕时的x坐标
if (x1 - x > 10) {
slidingMenu.toggle(true);//关闭slidingMenu
}
}
}
return super.onTouchEvent(event);
}