Wie kann jemand eine horizontale Scroll-Liste mit Schnapp-Effekt in die Mitte erstellen

OK! Ich habe versucht, dies zu tun und für die letzten Wochen und kann nicht scheinen, eine gute Lösung zu finden, wie ich erreichen kann, was ich will. Ich habe versucht mit HorizontalScrollView, Galerie (was veraltet ist).

Ich schaue jetzt in RecycleView, weil ich über diese Methode kam.smoothScrollToPosition () und dachte, das könnte mir helfen.

  • Wie kann man gemischte RTL & LTR Sprachen in Benachrichtigungen behandeln?
  • Android - ImageView überlagert ein anderes ImageView
  • Dagger 2 Named kann nicht ohne @Provides-Methode bereitgestellt werden
  • Android Spinner mit Datum Picker, wie Google Kalender App
  • Gradle-Abhängigkeiten mit Travis CI auf Android-Projekt
  • Wie man das Verhalten der Lautstärketasten in einer Android-Anwendung überschreibt?
  • Hier ist eine Illustration von dem, was ich erreichen möchte:

    Bildbeschreibung hier eingeben

    Ich muss auch in der Lage sein, die Relativregeln programmatisch zu erstellen

    Kann jemand auf mich hinweisen, wie dies erreicht werden kann? Gibt es irgendeinen einheimischen Weg, es zu tun?

    EDIT: Nach dem Schauen weiter in @CommonsWare Vorschlag über das Schauen in ViewPager und die commonsware.com/blog/2012/08/20/ dritten Beitrag von Dave Smith Ich denke, das ist der Weg zu gehen. Havent modulierte es zu meinem Gebrauch noch, aber es sieht gut aus.

    Ich benutze Dave Smiths Probe von seinem Github: https://gist.github.com/devunwired/8cbe094bb7a783e37ad1

  • Implementieren Sie die Wiederholung
  • Wie schalte ich aufListItemClick in Listactivity mit Schaltflächen in der Liste?
  • Wie kann ich einen bedingten InvalidateOptionsMenu () Aufruf abhängig von der API-Ebene in Android machen?
  • Wie kann ich die 'Add Contact' Aktivität in android starten?
  • Android-Video-Editor-Klassen
  • Android - Wie zirkular zoom / vergrößern Teil des Bildes?
  • One Solution collect form web for “Wie kann jemand eine horizontale Scroll-Liste mit Schnapp-Effekt in die Mitte erstellen”

    Verwenden Sie diesen Ansatz nicht, es wird viel Gedächtnis nutzen (wenn Sie irgendwann zu einer allgemeineren Lösung reichen müssen), weil Sie eine ViewPager Anzahl von ViewPager Seiten ( Fragment ) im Speicher behalten müssen. Ich hatte die gleiche Herausforderung und das habe ich mit HorizontalListView erreicht .

    So müssen Sie einen Adapter erstellen, der "Stubs" View hinzufügen wird, um das erste oder das letzte zu erhalten (könnte mehr abhängig von den gewünschten sichtbaren Ansichten zur gleichen Zeit) zentriert in den Bildschirm, da dies ein ist ListView . Für den Schnapp-Effekt kannst du so etwas verwenden (alle Artikel müssen gleich dimensionieren):

     View.OnTouchListener hListViewsOnTouchListener = new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_UP && v instanceof HListView) { View c = ((HListView) v).getChildAt(0); int posToGo = Math.abs(c.getX()) < c.getWidth() / 2 ? ((HListView) v).getFirstVisiblePosition() : ((HListView) v).getFirstVisiblePosition() + 1; ((HListView) v).smoothScrollToPositionFromLeft(posToGo, 0); } return false; } }; 

    Dieser Ansatz nutzt nicht nur weniger Speicher, sondern ist generisch in Bezug auf die Anzahl der Kinderansichten, es ist glatter und alle Elemente sind anklickbar (nicht nur die zentrierte) … nun ist es ein ListView 🙂
    Hier ist ein Screenshot der endgültigen Ausgabe Beispiel:
    Bildbeschreibung hier eingebenBildbeschreibung hier eingebenBildbeschreibung hier eingeben

    Pass auf.

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