前段时间由于项目需要,用到了viewpager并且viewpager中放置了很多的TextView,每一个TextView代表一个标签,可以滑动选择,基本就是这样。
项目做好之后发现,viewpager的滑动并不是很流畅,有时候可能滑几次都不一定会动。后来查了很多资料,看到说需要重写onInterceptTouchEvent这个方法,阻断事件继续传递,就能解决了。经过尝试果然很好用。
public class customViewpagerView extends ViewPager {
private int preX=0;
public customViewpagerView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public customViewpagerView(Context context) {
super(context);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent even) {
if(even.getAction()==MotionEvent.ACTION_DOWN)
{
preX=(int) even.getX();
}else
{
if(Math.abs((int)even.getX()-preX)>10)
{
return true;
}else
{
preX=(int) even.getX();
}
}
return super.onInterceptTouchEvent(even);
}
}