ViewPager2:setOnTouchListener() 不调用
Posted
技术标签:
【中文标题】ViewPager2:setOnTouchListener() 不调用【英文标题】:ViewPager2: setOnTouchListener() doesn't call 【发布时间】:2019-12-23 23:53:28 【问题描述】:我正在将我的 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;
);
你知道我该如何解决吗?
非常感谢你们!
【问题讨论】:
我也有这个问题,它不知道为什么,我想扩展 viewpager2 以覆盖触摸方法,但我不能,因为 viewpager2 是最终的! 【参考方案1】:因为ViewPager2是一个ViewGroup,所以最终的目标是里面的recyclerview。没有调用setOnTouchListener
是因为recyclerview拦截了事件,先调用了onTouchEvent
。
添加自定义 onTouch 逻辑的正确方法是调用
mViewPager.getChildAt(0).setOnTouchListener...
【讨论】:
以上是关于ViewPager2:setOnTouchListener() 不调用的主要内容,如果未能解决你的问题,请参考以下文章