Estoy usando android.support.design.widget.BottomNavigationView de la biblioteca de soporte de diseño versión 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"/>
Cuando solo hay tres acciones en @ menu / bottom_navigation_main, muestra íconos y etiquetas de texto en todo momento.
¿Cuál es la manera de mostrar iconos y etiquetas de texto en todo momento cuando hay más de tres acciones?
android
android-support-library
android-support-design
bottomnavigationview
Desarrollador de Android
fuente
fuente
Respuestas:
Para cualquiera que todavía esté buscando una solución y no quiera depender de bibliotecas de terceros o reflexión en tiempo de ejecución, BottomNavigationView en Support Library 28 / Jetpack admite de forma nativa tener siempre etiquetas de texto.
Este es el método que estás buscando.
O en XML,
app:labelVisibilityMode="labeled"
fuente
ACTUALIZACIÓN DEL 8 DE MAYO DE 2018
Puedes usar
app:labelVisibilityMode="labeled"
directamente en<android.support.design.widget.BottomNavigationView />
Fuente: https://developer.android.com/reference/com/google/android/material/bottomnavigation/LabelVisibilityMode
No necesito esto debajo de una solución larga.
RESPUESTA ANTERIOR
Tuve un comportamiento extraño con BottomNavigationView. Cuando estaba seleccionando cualquier elemento / fragmento en él, el fragmento empuja BottomNavigationView un poco más abajo, por lo que el texto de BottomNavigationView va debajo de la pantalla, por lo que solo los iconos estaban visibles y el texto se oculta al hacer clic en cualquier elemento.
Si se enfrenta a ese comportamiento extraño, entonces esta es la solución. Solo eliminar
en su diseño raíz de fragmento. Solo elimina esto y ¡boom! BottomNavigationView funcionará bien, ahora se puede mostrar con texto e ícono. Tenía esto en mi raíz CoordinatorLayout of fragment.
Tampoco olvides agregar
en su actividad para desactivar el modo de cambio.
Aquí está esa clase:
fuente
disableShiftMode
, y en la claseremoveShiftMode
. Aparte de esa pequeña discrepancia, su respuesta resolvió el problema para mí. Ahora tengo cinco elementos de menú sin desplazamiento y con texto + icono. Gracias muy mucho!Es difícil en la versión 25.
Prueba este código. Pero creo que no es una buena solución.
fuente
Aquí hay una función de extensión de Kotlin que combina la solución @STAR_ZERO y @ KishanSolanki124.
Para usarlo:
fuente
¿Quieres este efecto?
Si es así, te recomendé que pruebes BottomNavigationViewEx。
fuente
Puede usar esto para mostrar texto e íconos en BottomNevigationView
Si está utilizando esto, podrá ver tanto el icono como el texto.
fuente
fuente
en la clase BottomNavigationView hay un campo BottomNavigationMenuView y en BottomNavigationMenuView hay un campo BottomNavigationItemView [], que son los elementos en la barra inferior.
Digamos que n es el número de elementos, BottomNavigationMenuView llamará a BottomNavigationItemView.setShiftingMode (n> 3) en cada miembro de la matriz BottomNavigationItemView []. Esta función decide el comportamiento (mostrar título siempre o solo después de la selección).
así que la forma de mostrar siempre los títulos es intentar llamar a este método y puede usar la reflexión para acceder a los campos privados.
fuente
Para mostrar los títulos hasta el final. Prueba este código de Kotlin:
fuente
Alternativa a BottomNavigationViewEx : BottomBar
fuente