有时候,我们可能由于要实现侧边栏,而使用了fragment,而在fragment界面我们是无法实现触摸事件的,这是因为我们的fragment没有和Activity一样,提供一个Ontouchevent函数给我们使用。
但是,我们可以在我们的Activity中定义一个接口,里面定义一个ontouchevent函数,
下面先说下,点击触摸事件发生顺序,可以把fragment看成是Activity中的一个子view,所以,触摸屏的时候,首先会触发dispatchment函数,我们可以在这个函数里面为fragment添加触摸函数,
/**
* 分发触摸事件给所有注册了MyTouchListener的接口
*/
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
// TODO Auto-generated method stub
for (MyTouchListener listener : myTouchListeners) {
listener.onTouchEvent(ev);
}
return super.dispatchTouchEvent(ev);
}
具体的注册和注销方式参看我的上一遍博客: 点击打开链接