Android 同时控制两个ViewPager

Android 同时控制两个ViewPager,android,android-layout,android-viewpager,android-scrollview,android-scroll,Android,Android Layout,Android Viewpager,Android Scrollview,Android Scroll,我需要同步两个ViewPager。该要求类似于滚动ViewPager-1和ViewPager-2时的滚动量。下面的图片会让你更清楚我的问题 你也可以帮我做一些教程链接。谢谢。您可以通过以下方式扩展ViewPager以创建自定义视图并覆盖onTouchEvent(): @Override public boolean onTouchEvent(MotionEvent event) { if(mDependentView != null){

我需要同步两个ViewPager。该要求类似于滚动ViewPager-1和ViewPager-2时的滚动量。下面的图片会让你更清楚我的问题


你也可以帮我做一些教程链接。谢谢。

您可以通过以下方式扩展ViewPager以创建自定义视图并覆盖onTouchEvent():

        @Override
        public boolean onTouchEvent(MotionEvent event) {

          if(mDependentView != null){
            mDependentView.onTouchEvent(event);
          }
          return super.onTouchEvent(event);
        }
还要在自定义类中创建一个setter,以设置dependentView

public void setDependentView(View view){
   mDependentView = view;
}

然后,您应该将第二个viewpager设置为活动中第一个viewpager的从属视图。

我认为这就是您需要的:

        viewpager1.setOnTouchListener(new OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                viewpager2.onTouchEvent(event);
                return false;
            }
        });

        viewpager2.setOnTouchListener(new OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                viewpager1.onTouchEvent(event);
                return false;
            }
        });

我也有同样的问题,但首先我尝试使用fakeDragBy方法,这是一个死胡同。(如果您有两页以上)

非常好且有效的解决方案。非常感谢。使用这种技术,如果同时触摸两个查看寻呼机,我会崩溃。我最终使用了这里的方法:我喜欢这个解决方案,因为它使两个视图页面的
ViewPagerIndicator
更加平滑,但是当您使用前面评论中描述的multi-touch时,它有一个bug,我无法阻止它,因此,我在XML布局中使用了
android:splitMotionEvents=“false”
,禁用了multi-touch,现在效果很好!