Ich möchte meinem ViewPager 3 untere Punkte hinzufügen.
Ich verwende FragmentActivity und unterstütze die Bibliothek ViewPager.
android
user-interface
android-viewpager
android-fragmentactivity
viewpagerindicator
Kfir Guy
quelle
quelle
Antworten:
So viel Code ist nicht erforderlich.
Sie können all diese Dinge tun, ohne so viel zu codieren, indem Sie nur
viewpager
mit verwendentablayout
.Ihr Hauptlayout:
Schließen Sie die Inaktivität oder das Fragment Ihrer UI-Elemente wie folgt an:
Java Code:
Das war's, du bist gut zu gehen.
Sie müssen die folgende XML-Ressourcendatei im Zeichenordner erstellen .
tab_indicator_selected.xml
tab_indicator_default.xml
tab_selector.xml
Fühlen Sie sich so faul wie ich? Nun, der gesamte obige Code wird in eine Bibliothek konvertiert! Verwendung Fügen Sie Ihrem Gradle Folgendes hinzu:
implementation 'com.chabbal:slidingdotsplash:1.0.2'
Fügen Sie Ihrem Aktivitäts- oder Fragment-Layout Folgendes hinzu.Erstellen Sie ein ganzzahliges Array in
strings.xml
zGetan! Extra um Seite Änderungen zu hören nutzen
addOnPageChangeListener(listener);
Github Link .quelle
com.google.android.material.tabs.TabLayout
in neueren Versionen verwendenring
. Scheint, als würde Ring auch in der Slidingdotsplash-Bibliothek anstelle von Oval verwendet.Meine handgemachte Lösung:
Im Layout:
Und in der Aktivität
quelle
Layout
nur einen Punkt zu setzen? Verwenden SieView
stattdessen.quelle
setOnPageChangedListener()
veraltet !! Verwenden SieaddOnPageChangedListener()
jetzt.Ich habe eine Bibliothek erstellt, um die Notwendigkeit einer Seitenanzeige in einem ViewPager zu beheben. Meine Bibliothek enthält eine Ansicht namens DotIndicator. Um meine Bibliothek zu verwenden, fügen Sie
compile 'com.matthew-tamlin:sliding-intro-screen:3.2.0'
sie Ihrer Gradle-Build-Datei hinzu.Die Ansicht kann Ihrem Layout hinzugefügt werden, indem Folgendes hinzugefügt wird:
Der obige Code repliziert perfekt die Funktionalität der Punkte auf dem Google Launcher-Startbildschirm. Wenn Sie ihn jedoch weiter anpassen möchten, können die folgenden Attribute hinzugefügt werden:
app:unselectedDotDiameter
undapp:selectedDotDiameter
die Durchmesser der Punkte einzustellenapp:unselectedDotColor
undapp:selectedDotColor
um die Farben der Punkte einzustellenapp:spacingBetweenDots
um den Abstand zwischen den Punkten zu ändernapp:dotTransitionDuration
um die Zeit für die Animation des Wechsels von klein nach groß (und zurück) festzulegenDarüber hinaus kann die Ansicht programmgesteuert erstellt werden mit:
Es gibt Methoden zum Ändern der Eigenschaften, ähnlich den Attributen. Um den Indikator so zu aktualisieren, dass eine andere Seite als ausgewählt angezeigt wird, rufen Sie einfach die Methode
indicator.setSelectedItem(int, true)
von innen aufViewPager.OnPageChangeListener.onPageSelected(int)
.Hier ist ein Beispiel dafür:
Wenn Sie interessiert sind, wurde die Bibliothek tatsächlich so konzipiert, dass Intro-Bildschirme wie der im obigen GIF gezeigte erstellt werden.
Github-Quelle hier verfügbar: https://github.com/MatthewTamlin/SlidingIntroScreen
quelle
int getNumberOfItems()
undvoid setNumberOfItems()
. Anstatt die Ausnahme abzufangen , könnten Sie so etwas tun: gist.github.com/MatthewTamlin/761c7338d271af29526edc7859480aef .ViewPagerIndicator
wurde seit 2012 nicht aktualisiert und hat mehrere Fehler, die nie behoben wurden.Ich habe endlich eine Alternative mit dieser Lichtbibliothek gefunden, die schöne Punkte für die anzeigt
viewpager
, hier ist der Link:https://github.com/ongakuer/CircleIndicator
Einfach zu implementieren!
quelle
Ich dachte daran, eine einfachere Lösung für das oben genannte Problem zu veröffentlichen, und Indikatornummern können dynamisch geändert werden,
dotCounts=x
indem nur ein variabler Wert geändert wird .1) Erstellen Sie eine XML-Datei im Zeichenordner für den seitenausgewählten Indikator "item_selected".
2) Erstellen Sie eine weitere XML-Datei für den nicht ausgewählten Indikator "item_unselected".
3) Fügen Sie nun diesen Teil des Codes an der Stelle hinzu, an der Sie die Indikatoren für ex unten
viewPager
in Ihrer Layout-XML-Datei anzeigen möchten .4) Fügen Sie diese Funktion über Ihrer Aktivitätsdateidatei hinzu, in der Ihr Layout aufgeblasen ist oder auf die sich die obige XML-Datei bezieht
5) Fügen Sie schließlich in Ihrer onCreate-Methode den folgenden Code hinzu, um auf Ihr Layout zu verweisen und seitenausgewählte Positionen zu behandeln
quelle
Sie können die Bibliothek von Jake Wharton ausprobieren - https://github.com/JakeWharton/Android-ViewPagerIndicator
quelle
Das Folgende ist meine vorgeschlagene Lösung.
A) Es folgt meine activity_main.xml
B) pager_item.xml
C) MainActivity.java
D) CustomPagerAdapter.java
E) selecteditem_dot.xml
F) nonselecteditem_dot.xml
quelle
Wenn jemand eine
viewPager
Miniaturansicht als Indikatoren erstellen möchte , kann die Verwendung dieser Bibliothek eine Option sein: ThumbIndicator für viewPager, der auch mit Bildlinks als Ressourcen funktioniert.quelle
Hier ist, wie ich das gemacht habe, ähnlich wie bei den obigen Lösungen. Stellen Sie einfach sicher, dass Sie die loadDots () -Methode aufrufen , nachdem alle Bilder heruntergeladen wurden .
quelle