ViewPager2:setOnTouchListener() 不调用

ant*_*ony 14 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;
            }
        });
Run Code Online (Sandbox Code Playgroud)

你知道我该如何解决吗?

非常感谢你们!

小智 13

因为 ViewPager2 是一个 ViewGroup,所以最终的目标是其中的 recyclerview。该setOnTouchListener不叫是因为recyclerview拦截事件,并调用onTouchEvent第一。

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