码迷,mamicode.com
首页 > 其他好文 > 详细

解决ViewPage中嵌套有ListView或者滑动手势等造成滑动的冲突

时间:2014-08-16 23:47:11      阅读:316      评论:0      收藏:0      [点我收藏+]

标签:android   os   io   ar   cti   amp   ef   on   

public class ViewPagerCompat extends ViewPager {

//mViewTouchMode表示ViewPager是否全权控制滑动事件,默认为false,即不控制
private boolean mViewTouchMode = false;

public ViewPagerCompat(Context context, AttributeSet attrs) {
super(context, attrs);
}

public void setViewTouchMode(boolean b) {
if (b && !isFakeDragging()) {
//全权控制滑动事件
beginFakeDrag();
} else if (!b && isFakeDragging()) {
//终止控制滑动事件
endFakeDrag();
}
mViewTouchMode = b;
}

/**
* 在mViewTouchMode为true的时候,ViewPager不拦截点击事件,点击事件将由子View处理
*/
@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
if (mViewTouchMode) {
return false;
}
return super.onInterceptTouchEvent(event);
}

@Override
public boolean onTouchEvent(MotionEvent ev) {
try {
return super.onTouchEvent(ev);
} catch (Exception e) {
return false;
}
}

/**
* 在mViewTouchMode为true或者滑动方向不是左右的时候,ViewPager将放弃控制点击事件,
* 这样做有利于在ViewPager中加入ListView等可以滑动的控件,否则两者之间的滑动将会有冲突
*/
@Override
public boolean arrowScroll(int direction) {
if (mViewTouchMode) return false;
if (direction != FOCUS_LEFT && direction != FOCUS_RIGHT) return false;
return super.arrowScroll(direction);
}

}

 

杭州ios交流群  372471379      杭州android交流群:369469730

解决ViewPage中嵌套有ListView或者滑动手势等造成滑动的冲突,布布扣,bubuko.com

解决ViewPage中嵌套有ListView或者滑动手势等造成滑动的冲突

标签:android   os   io   ar   cti   amp   ef   on   

原文地址:http://www.cnblogs.com/xishui2011/p/3917068.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!