Ich entwerfe eine Ansicht mit mehreren Seiten. Ich möchte, dass die Kanten der vorherigen und nächsten Seiten wie unten angezeigt werden, und implementiere einen 2-Finger-Wisch, um zwischen den Seiten zu wechseln.
Ich habe versucht, ViewPager
mit negativem Seitenrand zu verwenden, wie hier vorgeschlagen aber das zeigt nur eine der Kanten auf dem Bildschirm, nicht beide gleichzeitig.
Alternativ gibt es eine Möglichkeit, einen Teil meiner Ansicht außerhalb des Bildschirms zu positionieren und ihn dann zu animieren, indem ich ihm eine gebe ViewPager
Typ Wirkung.
Wie soll ich vorgehen? Vielen Dank !
android
android-viewpager
viewflipper
viewanimator
Gaurav Arora
quelle
quelle
Antworten:
Ich zitiere mich aus einem Blog-Beitrag zu diesem Thema :
quelle
Ich habe eine ähnliche Lösung:
Stellen Sie am Viewpager die linke und rechte Polsterung ein, z. B. 20dp. Stellen Sie auch den Seitenrand am Viewpager ein, z. B. die Hälfte des Pager-Auffüllens. Vergessen Sie nicht, das Auffüllen der Clips zu deaktivieren.
quelle
Stellen Sie die linke und rechte Polsterung für die Ansicht des gesamten Elements ein. Beispiel xml (page_item.xml):
Stellen Sie dann den negativen Seitenrand
PageView
auf 2 * ein (vorheriges Auffüllen der Ansicht).Optional. Stellen Sie für das erste Element eine linke Auffüllung von Null und für das letzte Element eine rechte Auffüllung von Null ein, um leere Kanten auszublenden. Sie können dies in der Klasse
PageAdapter
oderPage
fragment tun .quelle
Um die Vorschau der linken und rechten Seite anzuzeigen, stellen Sie die folgenden zwei Werte ein
Wenn Sie Platz zwischen zwei Seiten im Viewpager benötigen, fügen Sie viewpager.setPageMargin (int) hinzu.
Android ViewPager - Vorschau der Seite links und rechts anzeigen
quelle
Wenn jemand noch nach einer Lösung sucht, habe ich die ViewPage so angepasst, dass sie ohne negative Marge erreicht wird. Ein Beispielprojekt finden Sie hier https://github.com/44kksharma/Android-ViewPager-Carousel-UI. Es sollte in den meisten Fällen funktionieren, aber Sie kann noch Seitenrand mit definieren
mPager.setPageMargin(margin in pixel);
quelle
Laden Sie den Quellcode von hier herunter ( ViewPager mit vorherigen und nächsten Seitengrenzen )
MainActivity.java
quelle
Vor einiger Zeit musste ich solche Funktion und eine kleine Bibliothek hergestellt , die verwendet
RecyclerView
mit PagerSnapHelper (hinzugefügt in Version 25.1.0 der v7 Support - Bibliothek) statt klassischViewPager
:MetalRecyclerPagerView - dort finden Sie den gesamten Code sowie Beispiele.
Hauptsächlich besteht es aus einer einzelnen Klassendatei: MetalRecyclerViewPager.java (und zwei xmls: attrs.xml und ids.xml ).
Hoffe es hilft jemandem :)
quelle