slidingmenu和ViewPager滑动冲突的解决方法
来源:互联网 发布:淘宝卫衣店铺推荐 编辑:程序博客网 时间:2024/05/22 00:42
slidingmenu嵌套ViewPager
下面说的是slidingmenu左侧是菜单和中间部分是ViewPager时 滑动事件冲突的问题:
当滑动事件冲突时,我们首先要想到用事件的分发和拦截处理机制来解决,首先在slidingmenu控件的CustomViewAbove这个类(这里只举例左侧栏,右侧栏同理),找到onInterceptTouchEvent,在里面加入这段代码,这里的isCanMove默认是true,false时代表 不能滑动菜单,
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
if (!AppContext.isCanMove) {
return false;
}
然后 重写ViewPager ,重写下里面的dispatchTouchEvent这个方法,由此可见,当我们按下ViewPager时,当当前页不是第一页时,isCanMove为false,此时slidingmenu控件的CustomViewAbove的onInterceptTouchEvent方法就会执行,将slidingmenu滑动事件拦截掉 而只执行ViewPager滑动事件;若非第一页则应该不屏蔽,这里必须判断ViewPager是否是第一页,如果是第一页在向左滑动应该是侧边栏,如果不是第一页,则应该屏蔽侧边栏而向左滑动ViewPager.(逻辑需求应该是这样才合理),如果是右侧菜单就要判断当前页是否是最后一页
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
if (ev.getAction() == MotionEvent.ACTION_DOWN) {
if (getCurrentItem() == 0) {
AppContext.isCanMove = true;
}else{
AppContext.isCanMove = false;
}
}
return super.dispatchTouchEvent(ev);
}
综上所述:之所以在dispatchTouchEvent里写而不在onTouchEvent里写 是因为dispatchTouchEvent会在onInterceptTouchEvent之前执行,dispatchTouchEvent是事件的分发,然后才到拦截onInterceptTouchEvent,最后才到onTouchEvent,处理好这个事件 以后所有的控件 凡是有冲突都可以参考这个原理来解决了。
- slidingmenu和ViewPager滑动冲突的解决方法
- 解决侧滑中ViewPager和SlidingMenu的滑动冲突
- Android:SlidingMenu+ListView+ViewPager 的滑动冲突
- slidingMenu下的Viewpager滑动点击事件冲突
- 解决SlidingMenu与ViewPager的滑动冲突尝试
- SlidingMenu和PagerSlidingTabStrip滑动冲突的解决方案
- SwipeRefreshLayout和Viewpager滑动时冲突解决方法
- ScrollView嵌入ViewPager 滑动冲突的解决方法
- SlidingPanelLayout与ViewPager滑动冲突的解决方法
- ViewPager和ResideMenu左右滑动冲突解决方法。ResideMenu viewPager
- Android ViewPager嵌套ViewPager滑动冲突的解决方法
- Android ViewPager嵌套ViewPager滑动冲突的解决方法
- ViewPager 常见滑动冲突解决方法
- viewpager+fragment+slidingmenu滑动卡顿解决方法
- 解决 HorizontalScrollView 和 ViewPager 的滑动冲突
- ViewPager和SlidingPaneLayout的滑动冲突事件
- SwipeRefreshLayout和Viewpager的滑动冲突问题
- 一句话解决SlidingMenu和其他滑动控件之间的冲突
- Java构造解析Json数据的两种方法
- 【转】PHP操作MongoDB技術總結
- 实用又好看的 jQuery插件 转自——Helloworld
- oracle 字符集
- 读<反欺骗的艺术>有感
- slidingmenu和ViewPager滑动冲突的解决方法
- 协同过滤算法
- Android RotateAnimation详解
- 《SAS编程与数据挖掘商业案例》学习笔记之十八
- NYOJ 题目536 开心的mdd(矩阵的最大乘法次数模板)
- QtCreator 网络编程——获取网络接口信息(QHostInfo,QNetworkInterface ,QNetworkAddressEntry)
- CocoaPods安装和使用教程
- Java构造解析Json数据的方法2
- eclipse 使用Maven deploy命令部署构建到Nexus上