Android OnTouchListener内部片段停止Viewpager滑动事件

Android OnTouchListener内部片段停止Viewpager滑动事件,android,android-viewpager,ontouchlistener,Android,Android Viewpager,Ontouchlistener,我在一个片段中有一个Viewpager,当我试图在这个Viewpager上实现OnTouchListener时,触摸手势工作完全正常,但在实现OnTouchListener后,我无法在我的Viewpager项目之间切换。我不确定我做错了什么,甚至我也没有得到任何线索 以下是我的OnTouchListener代码: lsArticlesViewPager.setOnTouchListener(new View.OnTouchListener() { @Override

我在一个片段中有一个Viewpager,当我试图在这个Viewpager上实现OnTouchListener时,触摸手势工作完全正常,但在实现OnTouchListener后,我无法在我的Viewpager项目之间切换。我不确定我做错了什么,甚至我也没有得到任何线索

以下是我的OnTouchListener代码:

lsArticlesViewPager.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View view, MotionEvent motionEvent) {
            switch (motionEvent.getAction()) {
                case MotionEvent.ACTION_DOWN: {
                    downXValue = motionEvent.getX();
                    downYValue = motionEvent.getY();
                    break;
                }

                case MotionEvent.ACTION_UP: {
                    float currentX = motionEvent.getX();
                    float currentY = motionEvent.getY();

                    if (downYValue < currentY) {
                        swipeUpTv.startAnimation(animBounce);
                    }
                    if (downYValue > currentY) 
                        getActivity().finish();
                    }
                    break;
                }
            }

            return true;
        }
    });
lsarticlesviewpage.setOnTouchListener(新视图.OnTouchListener()){
@凌驾
公共布尔onTouch(视图、运动事件、运动事件){
开关(motionEvent.getAction()){
case MotionEvent.ACTION\u DOWN:{
downXValue=motionEvent.getX();
downYValue=motionEvent.getY();
打破
}
case MotionEvent.ACTION\u UP:{
float currentX=motionEvent.getX();
float currentY=motionEvent.getY();
if(向下值<当前值){
swipeUpTv.startAnimation(动画反弹);
}
如果(向下值>当前值)
getActivity().finish();
}
打破
}
}
返回true;
}
});

因为您正在使用该事件,所以
ViewPager
不会更改。从
onTouch
方法返回
false
。 检查
onTouch
方法的官方版本。 返回

如果侦听器已使用事件,则为True,否则为false


如果我从onTouch返回“false”,则menthod Viewpager工作正常,但onTouchListener停止工作。如果我从onTouch返回“true”,那么onTouchListener工作正常,但Viewpager停止工作。onTouchListener在返回
false
后停止工作,因为
Viewpager
正在使用滑动片段的触摸事件,你是对的。现在它的工作就像一个魅力。感谢您指出问题:)如果您想在每次触摸
ViewPager
时检测它的触摸事件,您必须关注
ViewPager
的子类并覆盖
dispatchTouchEvent
方法。然后,每次触摸
ViewPager
方法
dispatchTouchEvent
都会被调用。确保您没有使用它而返回false。很高兴听到它有帮助。:)