Android轮播图的触摸事件分发问题
最近有个问题深深的困扰着我,请帮帮忙答复吧,我在设置无限轮播图时在ViewPager设置
viewpager.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
mRunTask.stop(); //轮播图停止轮播
System.out.println("------为啥不发生???");
break;
case MotionEvent.ACTION_CANCEL:
// 事件的取消
mRunTask.start();
break;
case MotionEvent.ACTION_UP:
mRunTask.start();
break;
default:
break;
}
return false; // viewPager 触摸事件 返回值要是false ,不然不能左右滑动
}
});
}
又在ViewPager的Adapter里, 在public Object instantiateItem(ViewGroup container, int position)方法里的view中设置了点击事件(onclick),这样轮播图中的view就可以拥有点击事件了。
但是一运行发现问题来了,ViewPager设置的OnTouchListener根本不响应,因为根本没有触发down事件(没有打印sysout这句话),一直按着轮播图,图片还是会自动切换下一页,松开手就会响应到轮播图里面view的onclick事件,但是如果按照viewGroup的事件分发机制,不是必定执行dispatchTouchEvent么?为啥ViewPager的OnTouch方法不会执行?难道说在viewGroup的父布局设置setOnTouchListener(new OnTouchListener() 是没效的?