Używam android.support.design.widget.BottomNavigationView z biblioteki obsługi projektów w wersji 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"/>
Kiedy w @ menu / bottom_navigation_main są tylko trzy akcje, przez cały czas wyświetla zarówno ikony, jak i etykiety tekstowe.
Jaki jest sposób wyświetlania zarówno ikon, jak i etykiet tekstowych przez cały czas, gdy są więcej niż trzy akcje.
android
android-support-library
android-support-design
bottomnavigationview
Programista Androida
źródło
źródło
Odpowiedzi:
Dla każdego, kto wciąż szuka rozwiązania i nie chce polegać na bibliotekach innych firm lub odbiciu czasu wykonywania, BottomNavigationView w Support Library 28 / Jetpack natywnie obsługuje zawsze posiadanie etykiety tekstowej.
To jest metoda, której szukasz.
Lub w formacie XML,
app:labelVisibilityMode="labeled"
źródło
AKTUALIZACJA OD 8 maja 2018
Możesz używać
app:labelVisibilityMode="labeled"
bezpośrednio w<android.support.design.widget.BottomNavigationView />
Źródło: https://developer.android.com/reference/com/google/android/material/bottomnavigation/LabelVisibilityMode
Nie potrzebuję tego poniżej przydługiego rozwiązania.
POPRZEDNIA ODPOWIEDŹ
Miałem dziwne zachowanie z BottomNavigationView. Kiedy wybierałem dowolny element / fragment w nim, fragment wypycha BottomNavigationView nieco niżej, więc tekst BottomNavigationView trafia poniżej ekranu, więc widoczne są tylko ikony, a tekst jest ukrywany po kliknięciu dowolnego elementu.
Jeśli masz do czynienia z tym dziwnym zachowaniem, oto rozwiązanie. Po prostu usuń
w głównym układzie fragmentu. Po prostu to usuń i bum! BottomNavigationView będzie działać dobrze, teraz można go wyświetlić z tekstem i ikoną. Miałem to w moim głównym Koordynatorze Układ fragmentu.
Nie zapomnij też dodać
w swojej aktywności, aby wyłączyć tryb zmiany biegów.
Oto ta klasa:
źródło
disableShiftMode
i na zajęciachremoveShiftMode
. Oprócz tej małej rozbieżności, Twoja odpowiedź rozwiązała problem za mnie. Mam teraz pięć elementów menu bez przesuwania i z tekstem + ikoną. Dziękuję bardzo dużo!W wersji 25 jest to trudne.
Wypróbuj ten kod. Ale myślę, że to nie jest dobre rozwiązanie.
źródło
Oto funkcja rozszerzenia Kotlin, która łączy rozwiązanie @STAR_ZERO i @ KishanSolanki124.
Aby z niego skorzystać:
źródło
Chcesz taki efekt?
Jeśli tak, polecam wypróbowanie BottomNavigationViewEx。
źródło
Możesz użyć tego do wyświetlania zarówno tekstu, jak i ikon w BottomNevigationView
Jeśli tego używasz, będziesz mógł zobaczyć zarówno ikonę, jak i tekst
źródło
źródło
w klasie BottomNavigationView znajduje się pole BottomNavigationMenuView, a w BottomNavigationMenuView pole BottomNavigationItemView [], czyli elementy na dolnym pasku.
Powiedz n to liczba elementów, BottomNavigationMenuView wywoła BottomNavigationItemView.setShiftingMode (n> 3) dla każdego elementu członkowskiego tablicy BottomNavigationItemView []. Ta funkcja decyduje o zachowaniu (pokaż tytuł zawsze lub tylko po zaznaczeniu).
więc sposobem na zawsze pokazanie tytułów jest wywołanie tej metody i możesz użyć refleksji, aby uzyskać dostęp do pól prywatnych.
źródło
Aby pokazać tytuły przez całą drogę. Wypróbuj ten kod Kotlin:
źródło
Alternatywa dla BottomNavigationViewEx : BottomBar
źródło