ViewPager2:setOnTouchListener()不调用

时间:2019-08-18 14:01:31

标签: android android-viewpager android-viewpager2

我正在将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;
            }
        });

你知道我该怎么解决吗?

非常感谢你们!

1 个答案:

答案 0 :(得分:10)

因为ViewPager2是一个ViewGroup,所以最终目标是其中的recyclerview。之所以没有调用setOnTouchListener是因为recyclerview拦截了该事件并首先调用了onTouchEvent

添加自定义onTouch逻辑的正确方法是调用 mViewPager.getChildAt(0).setOnTouchListener{...}