Android事件传递机制
在开发android中,有时我们会遇到这样的情况,就是一个界面既要实现左右滑动又要实现上下滚动(例如viewpage之类的和scrollview之间),这时你会发现两者间存在矛盾,导致不能兼并,放心,接下来为您解决这个问题
首先无论是左右滑动还是上下滚动,其根本的原理都是捕捉我们触摸屏幕的事件,然后对此事件进行响应,所以,我们先列出捕捉我们动作的几个方法:
public boolean dispatchTouchEvent(MotionEvent ev); //分派event
public boolean onInterceptTouchEvent(MotionEvent ev); //拦截event
public boolean onTouchEvent(MotionEvent ev); //处理event
拥有这三个方法的类有:
Activity类 :
dispatchTouchEvent()、onTouchEvent()
View容器(LinearLayout、ListView、ScrollView等ViewGroup的子类):
dispatchTouchEvent()、onInterceptTouchEvent()、onTouchEvent()
View控件(Button、TextView...