6

Ich muss die beiden ViewPager miteinander synchronisieren. Die Anforderung ist etwa so, als würde man den ViewPager-1 scrollen und der ViewPager-2 sollte ebenfalls um einen bestimmten Betrag scrollen. Das unten gezeigte Bild wird Sie mit meiner Frage klarer machen.Zwei ViewPager zusammen steuern

enter image description here

Sie können mich auch mit einigen Link-Tutorials helfen. Vielen Dank.

Antwort

2

Sie ViewPager um eine benutzerdefinierte Ansicht und außer Kraft setzen onTouchEvent() in der folgenden Art und Weise erweitern können zu erstellen:

 @Override 
     public boolean onTouchEvent(MotionEvent event) { 

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

auch einen Setter in Ihrer benutzerdefinierten Klasse, um die dependentView erstellen

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

Dann sollten Sie den zweiten Viewpager als abhängige Ansicht des ersten Viewpagers in Ihrer Aktivität einstellen.

13

Ich denke, das ist das, was Sie brauchen:

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

ich ein gleiches Problem habe, aber zuerst versuchen, ich fakeDragBy Methode zu verwenden, die Sackgasse ist. (Wenn Sie mehr als zwei Seiten haben)

+0

sehr schöne und effektive Lösung. Vielen Dank! –

+1

Mit dieser Technik bekomme ich einen Absturz, wenn Sie beide Pager gleichzeitig berühren. Ich habe stattdessen den Ansatz hier verwendet: https://stackoverflow.com/a/26513243/369480 – gnuf