不能滑动的SlidingPaneLayout
最近在做一个项目,其中侧边导航栏是用Google自己推出的一个SlidingPaneLayout控件,与网上的开源项目SlideMenu用法类似,可以实现右划拉出隐藏菜单,这个控件的用法网上很多,就不多介绍了,首先要导入最新的android.supportv4 包,以保证低版本能使用。
但是主界面我用了Viewpager,这样SlidingPaneLayout的滑动就与Viewpager的滑动冲突了,于是我就在想可以把打开菜单作为一个Button的点击事件,之后只要关闭SlidingPaneLayout的滑动就OK了。
然而在网上找了大量的代码都没有找到我所需要的,更多的都是在介绍这个控件如何使用,于是我不得不重写SlidingPaneLayout的部分方法让他适合我的需求。首先我想到的是重写它的canSlide方法,将其返回值改为return false,然而并没有什么卵用。。。
然后我去查了谷歌的帮助文档,发现了一个叫onInterceptTouchEvent的方法。直觉告诉我,我要找的东西来了。
首先是XML布局文件
<com.gmp.widget.MySlideMenu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/main_slidemenu"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:descendantFocusability="afterDescendants"
android:isScrollContainer="true"
>
<!-- 菜单在前面,主界面在后面 -->
<!-- 菜单界面就不贴了,就是一个简单的TextView-->
<include layout="@layout/widget_main_menu" />
<