J'utilise android.support.design.widget.BottomNavigationView à partir de la bibliothèque de support de conception 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"/>
Lorsqu'il n'y a que trois actions dans @ menu / bottom_navigation_main, il affiche les icônes et les étiquettes de texte à tout moment.
Comment afficher les icônes et les étiquettes de texte à tout moment lorsqu'il y a plus de trois actions.
android
android-support-library
android-support-design
bottomnavigationview
Développeur Android
la source
la source
Réponses:
Pour tous ceux qui recherchent toujours une solution et ne veulent pas s'appuyer sur des bibliothèques tierces ou sur une réflexion d'exécution, BottomNavigationView dans Support Library 28 / Jetpack prend en charge nativement toujours avoir une étiquette de texte.
C'est la méthode que vous recherchez.
Ou en XML,
app:labelVisibilityMode="labeled"
la source
MISE À JOUR DU 8 mai 2018
Vous pouvez utiliser
app:labelVisibilityMode="labeled"
directement dans<android.support.design.widget.BottomNavigationView />
Source: https://developer.android.com/reference/com/google/android/material/bottomnavigation/LabelVisibilityMode
Vous n'avez pas besoin de cette solution longue.
RÉPONSE PRÉCÉDENTE
J'ai eu un comportement étrange avec BottomNavigationView. Lorsque je sélectionnais un élément / fragment qu'il contient, le fragment pousse BottomNavigationView un peu plus bas, de sorte que le texte de BottomNavigationView passe sous l'écran, de sorte que seules les icônes étaient visibles et le texte est masqué en cliquant sur n'importe quel élément.
Si vous êtes confronté à ce comportement étrange, voici la solution. Retirez simplement
dans votre disposition racine de fragment. Retirez simplement ceci et boum! BottomNavigationView fonctionnera bien, maintenant il peut être affiché avec du texte et une icône. J'avais ceci dans ma racine CoordinatorLayout de fragment.
N'oubliez pas non plus d'ajouter
dans votre activité pour désactiver le mode de changement de vitesse.
Voici cette classe:
la source
disableShiftMode
et dans la classeremoveShiftMode
. En dehors de cette petite divergence, votre réponse a résolu le problème pour moi. J'ai maintenant cinq menuitems sans décalage et avec texte + icône. Merci très bien!C'est difficile dans la version 25.
Essayez ce code. Mais je pense que ce n'est pas une bonne solution.
la source
Voici une fonction d'extension Kotlin qui combine la solution de @STAR_ZERO et de @ KishanSolanki124.
Pour l'utiliser:
la source
Voulez-vous cet effet?
Si tel est le cas, je vous ai recommandé d'essayer BottomNavigationViewEx。
la source
Vous pouvez l'utiliser pour afficher du texte et des icônes sur BottomNevigationView
Si vous l'utilisez, vous pourrez voir à la fois l'icône et le texte
la source
la source
dans la classe BottomNavigationView, il y a un champ BottomNavigationMenuView et dans BottomNavigationMenuView il y a un champ BottomNavigationItemView [], qui correspond aux éléments de la barre inférieure.
Disons que n est le nombre d'éléments, BottomNavigationMenuView appellera BottomNavigationItemView.setShiftingMode (n> 3) sur chaque membre du tableau BottomNavigationItemView []. Cette fonction décide du comportement (afficher le titre toujours ou uniquement lors de la sélection).
donc la façon de toujours afficher les titres est d'essayer d'appeler cette méthode et vous pouvez utiliser la réflexion pour accéder aux champs privés.
la source
Pour afficher les titres jusqu'au bout. Essayez ce code Kotlin:
la source
Alternative à BottomNavigationViewEx : BottomBar
la source