VeiwPager中滑动事件冲突解决方案
来源:互联网 发布:装修方案软件 编辑:程序博客网 时间:2024/05/16 00:55
滑动事件冲突:
1.ViewPager与ListView之间的冲突:
解决方法一:
在ViewPager的OnPageChanged事件中添加两句话即可:
private void viewPagerListener() {
// TODO Auto-generated method stub
viewPager.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int arg0) {
// 本页滑动完成之后,释放截取触摸事件的能力
viewPager.getParent().requestDisallowInterceptTouchEvent(false);
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
// 从上到下移动
}
@Override
public void onPageScrollStateChanged(int arg0) {
// 状态改变的时候,获取截取触摸事件的能力
viewPager.getParent().requestDisallowInterceptTouchEvent(true);
}
});
}
解决方法二:
在给ViewPager添加触摸事件,在触摸事件里面进行操作:
float xDown;
float yDown;
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
xDown = event.getX();
yDown = event.getY();
break;
case MotionEvent.ACTION_MOVE:
if(Math.abs(event.getX() - xDown) > Math.abs(event.getY() - yDown)){
viewPager.getParent().requestDisallowInterceptTouchEvent(true);
}else{
viewPager.getParent().requestDisallowInterceptTouchEvent(false);
}
break;
case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_CANCEL:
viewPager.getParent().requestDisallowInterceptTouchEvent(false);
break;
default:
break;
}
return false;
}
注意:方法二中当垂直滑动的距离大于水平滑动的距离时,ListView就会截取触摸事件,想要ViewPager在滑动的时候,LIstView不 能获取触摸事件,则用方法一;具体情况根据业务需求而定;
2.ViewPager与侧滑菜单之间的冲突:
在之前的博客中已经提到过,获取一个控件坐标的方法。因此,ViewPager与侧滑菜单之间冲突解决方法就是:
1)获取ViewPager在视图中的坐标位置;
2)添加判断:
如果触摸位置在ViewPager的纵轴坐标之内,则调用viewPager.getParent().requestDisallowInterceptTouchEvent(true)方法获得截取事件的能力;
如果触摸位置在ViewPager的纵轴坐标之外,则调用 viewPager.getParent().requestDisallowInterceptTouchEvent(false)方法让其失去截取事件的能力;
- VeiwPager中滑动事件冲突解决方案
- SwipeRefreshLayout包装listview滑动事件冲突解决方案
- Touch事件传递与滑动冲突解决方案
- Android中滑动冲突的解决方案
- ListView中嵌套ViewPager滑动事件冲突
- Android View的事件分发机制和滑动冲突解决方案
- Android View的事件分发机制与滑动冲突解决方案
- Android View的事件分发机制和滑动冲突解决方案
- scrollerView 和 slider 的滑动事件冲突的解决方案
- Android View的事件分发机制和滑动冲突解决方案
- Android-滑动冲突解决方案
- Android滑动冲突解决方案
- android滑动冲突解决方案
- Android滑动冲突解决方案
- 滑动冲突的解决方案
- 滑动事件冲突问题
- Android滑动事件冲突
- Android滑动事件冲突
- 常用默认端口号
- MvTec HALCON
- Java连接池详解
- (HDU 5724)2016 Multi-University Training Contest 1 Chess(SG函数、博弈)
- java基础(一)
- VeiwPager中滑动事件冲突解决方案
- Qt实现类似QQ好友列表
- 关于网络安全的 secure by default
- sharepoint 2016 学习系列篇(24)-文档库应用篇-(6)文档版本控制
- 递归搜索 ( 水题 )——A Rational Sequence ( UVA 7363 )
- 百度H5怎么做
- HDOJ 5747 Aaronson
- 杭电OJ2203-亲和串
- EL表达式/ JSTL标准标签库