2012-04-27 5 views
3

J'ai besoin de synchroniser le défilement dans deux viewpagers.deux ViewPagers défilement synchronisé

Voici un code pertinent:

super.onTouchEvent(ev); 
    switch (ev.getAction()) { 
    case MotionEvent.ACTION_DOWN: 
     mViewPager.beginFakeDrag(); 
     return true; 
    case MotionEvent.ACTION_MOVE: 
     mViewPager.fakeDragBy(mViewPager.getScrollX()-getScrollX()); 
     return true; 

    case MotionEvent.ACTION_UP: 
    case MotionEvent.ACTION_CANCEL: 
     mViewPager.endFakeDrag(); 
     return true; 
    default: 
     break; 
    } 
    return mViewPager.onTouchEvent(ev); 

I`m obtenir événement tactile, et en faisant défiler la deuxième vue du même montant. Mais une chose que je n'arrive pas à gérer est de désactiver ou de gérer le flip de la même façon, je veux dire court gestrue rapide qui fait automatiquement passer le défilement à la page suivante.

Structure est -ViewPagerNavigator- -ViewPagerMenu-

Comment puis-je faire Fling en elle pour travailler sur téléavertisseur de menu, ou désactiver juste?

+0

Je ne suis pas sûr que cela fera une différence, mais avez-vous joué avec le ['ViewPager.OnPageChangeListener'] (http://developer.android.com/reference/android/support/v4/view/ ViewPager.OnPageChangeListener.html) interface? Au lieu de capturer l'événement tactile directement, j'imagine que vous pourriez utiliser la méthode 'onPageScrolled (...)' et le décalage en offset. Pour les flings, vous pouvez vous en sortir avec 'onPageSelected (...)'. –

+0

bon point, très bon point, semble qu'il fonctionne, j'ai juste besoin maintenant de charger la mise en page de l'adaptateur, merci, postez-le comme réponse et je vais l'accepter. – Drake29a

+0

s'il vous plaît vérifier ma réponse ici. Je pense que j'utilise une meilleure solution: http://stackoverflow.com/a/26513243/2008214 –

Répondre

1

Comme pour précédemment obtenir des commentaires:

Je ne suis pas sûr que ça va faire une différence, mais avez-vous joué avec l'interface ViewPager.OnPageChangeListener? Au lieu de capturer l'événement tactile directement, j'imagine que vous pourriez utiliser la méthode onPageScrolled(...) et le décalage dans l'offset. Pour les flings, vous pourriez être en mesure de sortir avec onPageSelected(...).

+1

vous pouvez vérifier ma réponse ici, basé sur ce que vous dites: http://stackoverflow.com/a/26513243/ 2008214 –