完美解决SlidingMenu中Listview无法点击的问题

说点题外话:这个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);
    }

你可能感兴趣的:(心得)