Ich verwende android.support.design.widget.BottomNavigationView aus der Design Support Library Version 25
compile 'com.android.support:design:25.0.0'
<android.support.design.widget.BottomNavigationView
android:id="@+id/bottomBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_gravity="center"
app:itemBackground="@color/colorPrimary"
app:menu="@menu/bottom_navigation_main"
android:forceHasOverlappingRendering="true"/>
Wenn in @ menu / bottom_navigation_main nur drei Aktionen vorhanden sind, werden jederzeit sowohl Symbole als auch Textbeschriftungen angezeigt.
Wie können jederzeit Symbole und Textbeschriftungen angezeigt werden, wenn mehr als drei Aktionen ausgeführt werden?
android
android-support-library
android-support-design
bottomnavigationview
Android-Entwickler
quelle
quelle
Antworten:
Für alle, die noch nach einer Lösung suchen und sich nicht auf Bibliotheken von Drittanbietern oder Laufzeitreflexionen verlassen möchten, unterstützt BottomNavigationView in Support Library 28 / Jetpack von Haus aus immer die Verwendung von Textbezeichnungen.
Dies ist die Methode, nach der Sie suchen.
Oder in XML,
app:labelVisibilityMode="labeled"
quelle
UPDATE AB 8. Mai 2018
Sie können
app:labelVisibilityMode="labeled"
direkt in verwenden<android.support.design.widget.BottomNavigationView />
Quelle: https://developer.android.com/reference/com/google/android/material/bottomnavigation/LabelVisibilityMode
Benötigen Sie diese unten lange Lösung nicht.
VORHERIGE ANTWORT
Ich hatte ein seltsames Verhalten mit BottomNavigationView. Wenn ich ein Element / Fragment darin ausgewählt habe, drückt das Fragment BottomNavigationView etwas nach unten, sodass der Text von BottomNavigationView unter dem Bildschirm angezeigt wird, sodass nur Symbole sichtbar sind und der Text beim Klicken auf ein Element ausgeblendet wird.
Wenn Sie mit diesem seltsamen Verhalten konfrontiert sind, dann ist hier die Lösung. Einfach entfernen
in Ihrem Root-Layout des Fragments. Einfach entfernen und boomen! BottomNavigationView funktioniert einwandfrei, jetzt kann es mit Text und Symbol angezeigt werden. Ich hatte dies in meinem Root CoordinatorLayout des Fragments.
Vergessen Sie auch nicht hinzuzufügen
in Ihrer Aktivität, um den Schaltmodus zu deaktivieren.
Hier ist diese Klasse:
quelle
disableShiftMode
, und in der KlasseremoveShiftMode
. Abgesehen von dieser kleinen Diskrepanz löste Ihre Antwort das Problem für mich. Ich habe jetzt fünf Menüs ohne Verschiebung und mit Text + Symbol. Vielen Dank sehr viel!In Version 25 ist es schwierig.
Versuchen Sie diesen Code. Aber ich denke, es ist keine gute Lösung.
quelle
Hier ist eine Kotlin-Erweiterungsfunktion, die die Lösung von @STAR_ZERO und @ KishanSolanki124 kombiniert.
Um es zu benutzen:
quelle
Wollen Sie dies erreichen?
Wenn ja, empfahl ich Ihnen zu versuchen BottomNavigationViewEx .
quelle
Sie können dies verwenden, um sowohl Text als auch Symbole in BottomNevigationView anzuzeigen
Wenn Sie dies verwenden, können Sie sowohl das Symbol als auch den Text anzeigen
quelle
quelle
In der BottomNavigationView-Klasse gibt es ein BottomNavigationMenuView-Feld und in BottomNavigationMenuView ein BottomNavigationItemView [] -Feld. Dies sind die Elemente in der unteren Leiste.
Angenommen, n ist die Anzahl der Elemente. BottomNavigationMenuView ruft BottomNavigationItemView.setShiftingMode (n> 3) für jedes Mitglied des BottomNavigationItemView [] -Arrays auf. Diese Funktion entscheidet über das Verhalten (Titel immer oder nur bei Auswahl anzeigen).
Um die Titel immer anzuzeigen, müssen Sie versuchen, diese Methode aufzurufen, und Sie können Reflection verwenden, um auf die privaten Felder zuzugreifen.
quelle
Um die Titel vollständig anzuzeigen. Versuchen Sie diesen Kotlin-Code:
quelle
Alternative zu BottomNavigationViewEx : BottomBar
quelle