项目需求千奇百怪,不得不说作为程序员也是醉了。在项目中,老板要求安卓的用户交互风格必须和ios保持一样,ios上没有的安卓必须禁用。废话不多说,直接看项目需求。
项目中有页签分页显示的界面,于是就用了ViewPager组件。但是ios那边的页签却没有手势滑动的效果,因为老板比较喜欢ios,所以就要求将安卓ViewPager的手势滑动禁用掉。没办法,身为员工只能按老板说的做。下面看代码。
public class NoScrollHorizontalViewPager extends ViewPager{
private boolean DISABLE=false;
public NoScrollHorizontalViewPager(Context context){
super(context);
}
public NoScrollHorizontalViewPager(Context context, AttributeSet attrs){
super(context,attrs);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent arg0) {
return DISABLE&&super.onInterceptTouchEvent(arg0);
}
@Override
public boolean onTouchEvent(MotionEvent arg0) {
return DISABLE&&super.onTouchEvent(arg0);
}
}
看过代码后是不是感觉非常简单,没什么可说的。这里还是说下哈,其实就是将拦截触摸事件和触摸事件的返回值改为false即可,这样自定义的ViewPager组件就不会拦截和处理触摸事件了,也就不会随手势滑动了。