Я использую android.support.design.widget.BottomNavigationView из библиотеки поддержки дизайна версии 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"/>
Когда в @ menu / bottom_navigation_main есть только три действия, он всегда отображает и значки, и текстовые метки.
Каким образом можно отображать одновременно и значки, и текстовые метки при наличии более трех действий.
android
android-support-library
android-support-design
bottomnavigationview
Разработчик Android
источник
источник
Ответы:
Для тех, кто все еще ищет решение и не хочет полагаться на сторонние библиотеки или отражение во время выполнения, BottomNavigationView в библиотеке поддержки 28 / Jetpack изначально поддерживает всегда наличие текстовой метки.
Это тот метод, который вам нужен.
Или в XML,
app:labelVisibilityMode="labeled"
источник
ОБНОВЛЕНИЕ ОТ 8 мая 2018 г.
Вы можете использовать
app:labelVisibilityMode="labeled"
прямо в<android.support.design.widget.BottomNavigationView />
Источник: https://developer.android.com/reference/com/google/android/material/bottomnavigation/LabelVisibilityMode
Не нужно это подробное решение ниже.
ПРЕДЫДУЩИЙ ОТВЕТ
У меня было странное поведение с BottomNavigationView. Когда я выбирал в нем какой-либо элемент / фрагмент, фрагмент толкает BottomNavigationView немного ниже, поэтому текст BottomNavigationView идет под экраном, поэтому видны только значки, а текст скрывается при нажатии любого элемента.
Если вы столкнулись с таким странным поведением, то вот решение. Просто удали
в корневом макете фрагмента. Просто удали это и бум! BottomNavigationView будет работать нормально, теперь он может отображаться с текстом и значком. У меня это было в моем корневом CoordinatorLayout фрагмента.
Также не забудьте добавить
в вашей деятельности, чтобы отключить режим переключения.
Вот этот класс:
источник
disableShiftMode
и в классеremoveShiftMode
. Помимо этого небольшого несоответствия, ваш ответ решил проблему для меня. Теперь у меня есть пять пунктов меню без сдвига и с текстом + значок. Спасибо очень много!В версии 25 это сложно.
Попробуйте этот код. Но думаю, это не лучшее решение.
источник
Вот функция расширения Kotlin, которая объединяет решения @STAR_ZERO и @ KishanSolanki124.
Чтобы использовать это:
источник
Вы хотите этого эффекта?
Если да, то я рекомендовал вам попробовать BottomNavigationViewEx .
источник
Вы можете использовать это для отображения текста и значков в BottomNevigationView
Если вы используете это, вы сможете просматривать как значок, так и текст.
источник
источник
в классе BottomNavigationView есть поле BottomNavigationMenuView, а в BottomNavigationMenuView есть поле BottomNavigationItemView [], которое представляет собой элементы на нижней панели.
Скажем, n - количество элементов, BottomNavigationMenuView вызовет BottomNavigationItemView.setShiftingMode (n> 3) для каждого члена массива BottomNavigationItemView []. Эта функция определяет поведение (показывать заголовок всегда или только при выборе).
поэтому способ всегда показывать заголовки - это попытаться вызвать этот метод, и вы можете использовать отражение для доступа к закрытым полям.
источник
Чтобы заголовки отображались полностью. Попробуйте этот код Kotlin:
источник
Альтернатива BottomNavigationViewEx : BottomBar
источник