6

Potrzebuję zsynchronizować dwa ViewPager razem. Wymóg podobny jest do przewijania ViewPagera-1, a ViewPager-2 powinien również przewijać określoną ilość. Obraz pokazany poniżej pozwoli ci lepiej zrozumieć moje pytanie.Sterowanie dwoma ViewPager razem

enter image description here

Można także pomóc mi kilka tutoriali link. Dzięki.

Odpowiedz

2

można rozszerzyć ViewPager aby utworzyć widok niestandardowy i zastąpić onTouchEvent() w następujący sposób:

 @Override 
     public boolean onTouchEvent(MotionEvent event) { 

      if(mDependentView != null){ 
      mDependentView.onTouchEvent(event); 
      } 
      return super.onTouchEvent(event); 
     } 

tworzą również setter wewnątrz klasy niestandardowego w celu ustalenia dependentView

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

Następnie należy ustawić drugi widok strony jako zależny widok pierwszego widoku w działaniu.

13

myślę, że to jest to, czego potrzebujesz:

 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; 
      } 
     }); 

Mam ten sam problem, ale najpierw próbuję użyć metody fakeDragBy, który jest ślepy zaułek. (jeśli masz więcej niż dwie strony)

+0

bardzo ładne i skuteczne rozwiązanie. Dziękuję Ci! –

+1

Korzystanie z tej techniki powoduje awarię, jeśli jednocześnie dotkniesz obu pagery widoku. Skończyło się na użyciu podejścia tutaj zamiast: https://stackoverflow.com/a/26513243/369480 – gnuf