Android 多视图寻呼机触摸事件

Android 多视图寻呼机触摸事件,android,android-viewpager,Android,Android Viewpager,我在一个活动中有两个ViewPager,我希望当我滑动其中任何一个时,它们同步移动 例如,在右方向滑动Viewpager 1时,Viewpager 2显示也向右方向移动 以下是我的触控事件代码: viewPager2.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) {

我在一个活动中有两个ViewPager,我希望当我滑动其中任何一个时,它们同步移动

例如,在右方向滑动Viewpager 1时,Viewpager 2显示也向右方向移动

以下是我的触控事件代码:

    viewPager2.setOnTouchListener(new View.OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {

            viewPager1.onTouchEvent(event);
            return false;

        }

    });


    viewPager1.setOnTouchListener(new View.OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {

            viewPager2.onTouchEvent(event);
            return false;

        }
    });
现在,代码仅在Viewpager1的情况下起作用,即在滑动Viewpager1时,ViewPager2也朝同一方向移动,但当我滑动ViewPager2时,Viewpager1不移动


我需要帮助。提前感谢。

使用
OnPageChangeListener

viewPager1.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

        }

        @Override
        public void onPageSelected(int position) {
            viewPager2.setCurrentItem(position);
        }

        @Override
        public void onPageScrollStateChanged(int state) {

        }
    });

    viewPager2.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

        }

        @Override
        public void onPageSelected(int position) {
            viewPager1.setCurrentItem(position);
        }

        @Override
        public void onPageScrollStateChanged(int state) {

        }
    });

在页面ChangeListener上使用

viewPager1.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

        }

        @Override
        public void onPageSelected(int position) {
            viewPager2.setCurrentItem(position);
        }

        @Override
        public void onPageScrollStateChanged(int state) {

        }
    });

    viewPager2.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

        }

        @Override
        public void onPageSelected(int position) {
            viewPager1.setCurrentItem(position);
        }

        @Override
        public void onPageScrollStateChanged(int state) {

        }
    });

您需要使用
addOnPageChangeListener
来处理用户在
ViewPager上滑动时发生的事件

添加一个侦听器,该侦听器将在页面更改或增量滚动时调用


您需要使用
addOnPageChangeListener
来处理用户在
ViewPager上滑动时发生的事件

添加一个侦听器,该侦听器将在页面更改或增量滚动时调用


谢谢你,迈克尔。干杯如果答案对你有帮助,请接受@DineshSinghThank you Micheal。干杯如果答案对您有帮助,请接受@dineshsingh这将不会获得所需的结果,因为当页面处于运动状态时调用onPageScrolled,而不是当页面快速进入位置时调用onPageScrolled。这将不会获得所需的结果,因为当页面处于运动状态时调用onPageScrolled,而不是当页面快速进入位置时调用onPageScrolled