Machen Sie ViewPager-Snap mit kürzerem Drag

Gibt es eine Möglichkeit, das Support-Paket ViewPager auf die nächste Seite mit einem kürzeren Zug zu schnappen? Das Standardverhalten scheint zu sein, dass, selbst wenn ich fast 75% ziehe, die Seite immer noch auf die vorherige Seite zurückschnappt, wenn ich loslasse. Ich möchte die Snap-Schwelle kürzer machen und den ViewPager auf die nächste Seite einrasten lassen.

Beachten Sie, dass dies für die Ziehung der Geste angewendet wurde. Eine Fling Geste braucht schon viel kürzere Gesten.

  • Android zoomable / scrollable ImageView mit Overlays
  • Android Studio, Locat zeigt unendlich "I / Art: Enter while Schleife", auch wenn man leere Aktivität ausführt
  • Wie zu verhindern, dass andere Ansicht aus dem Bildschirm gedrückt wird
  • Parcelable und Vererbung in Android
  • So aktualisieren / aktualisieren Sie Ihre Android APK während der Staged Rollout in Google Play
  • ArrayList Finde das erste und das letzte Element
  • Fragment ViewState in onStart wiederhergestellt?
  • Wie man die Galerie nach dem bewegten foto programmgesteuert aktualisiert?
  • Replizierleiste von ListView mit Polsterung
  • Handhabung von Listen mit RxJava und Retrofit in Android
  • Wie zeichne Kreis um einen Stift mit Google MAps API v2
  • Konvertieren Sie jQuery mobile Anwendung auf apk
  • 2 Solutions collect form web for “Machen Sie ViewPager-Snap mit kürzerem Drag”

    Sie können dies ad-hoc machen, ohne sich zu sehr um die Internets von ViewPager zu kümmern, solange Sie die Zielzone erhöhen möchten:

    private class MyPageChangeListener implements OnPageChangeListener { private float mLastPositionOffset = 0f; @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { if(positionOffset < mLastPositionOffset && positionOffset < 0.9) { mViewPager.setCurrentItem(position); } else if(positionOffset > mLastPositionOffset && positionOffset > 0.1) { mViewPager.setCurrentItem(position+1); } mLastPositionOffset = positionOffset; } } 

    Sieht aus wie diese Werte sind hart-codiert in einer privaten Methode, so gibt es keine einfache Möglichkeit, sie zu überschreiben.

    http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.2.2_r1/android/support/v4/view/ViewPager.java#2075

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.