Android ViewPager2的OnTouchListener

Android ViewPager2的OnTouchListener,android,android-viewpager,ontouchlistener,android-viewpager2,Android,Android Viewpager,Ontouchlistener,Android Viewpager2,我最近将应用程序中的ViewPager更改为ViewPager2。我已将onTouchListener设置为viewPager对象以检测手势(onFling和onLongPress),如下所示: mViewPager.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View view, MotionEvent motionEvent) { mDetec

我最近将应用程序中的ViewPager更改为ViewPager2。我已将onTouchListener设置为viewPager对象以检测手势(onFling和onLongPress),如下所示:

mViewPager.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View view, MotionEvent motionEvent) {
        mDetector.onTouchEvent(motionEvent); // use the custom gesture detector to detect onFling and onLongPress touch events.
        return true; 
    }
});

viewPager的onTouchListener在重构到ViewPager2之前工作正常。我试过了,但没用。任何人都知道为什么会出现这种情况,以及我如何解决它?

因为ViewPager2是一个视图组,所以最终的目标是其中的recyclerview。未调用setOnTouchListener,因为recyclerview截获事件并首先调用onTouchEvent

添加定制的onTouch逻辑的正确方法是调用

mViewPager.getChildAt(0).setOnTouchListener{...}