6

Je dois synchroniser les deux ViewPager ensemble. L'exigence est quelque chose comme sur le défilement du ViewPager-1 et le ViewPager-2 devrait également défiler d'une certaine quantité. L'image ci-dessous vous rendra plus clair avec ma question.Contrôle de deux ViewPager Together

enter image description here

Vous pouvez aussi me aider avec un lien de tutoriels. Merci.

Répondre

2

Vous pouvez étendre ViewPager afin de créer une vue personnalisée et passer outre onTouchEvent() de la manière suivante:

 @Override 
     public boolean onTouchEvent(MotionEvent event) { 

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

également créer un setter dans votre classe personnalisée afin de définir le dependentView

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

Ensuite, vous devez définir le deuxième viewpager en tant que vue dépendante du premier viewpager de votre activité.

13

Je pense que c'est ce que vous avez besoin:

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

J'ai un même problème, mais d'abord j'essayer d'utiliser la méthode fakeDragBy, qui est impasse. (si vous avez plus de deux pages)

+0

solution très agréable et efficace. Je vous remercie! –

+1

En utilisant cette technique, je reçois un plantage si vous touchez simultanément les deux pagers de vue. J'ai fini par utiliser l'approche ici: https://stackoverflow.com/a/26513243/369480 – gnuf