我正在将ViewPager迁移到新的ViewPager2。不幸的是,对于这个新类,setOnTouchListener
从未被调用。
mViewPager.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
LogUtils.LOGD("XXXX", "motionEvent.getAction()=" + motionEvent.getAction());
...
return false;
}
});
你知道我该怎么解决吗?
非常感谢你们!
答案 0 :(得分:10)
因为ViewPager2是一个ViewGroup,所以最终目标是其中的recyclerview。之所以没有调用setOnTouchListener
是因为recyclerview拦截了该事件并首先调用了onTouchEvent
。
添加自定义onTouch逻辑的正确方法是调用
mViewPager.getChildAt(0).setOnTouchListener{...}