J'essaye d'ajouter BottomNavigationView avec de grandes icônes. Cependant, il apparaît avec le titre chevauchant sur l'icône.
Code:
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/bottomNavigationView"
android:layout_width="match_parent"
android:layout_height="100dp"
app:labelVisibilityMode="labeled"
app:itemIconSize="50dp"
app:menu="@menu/bottom_navigation_menu"/>
J'utilise la version 1.0.0 de la bibliothèque de matériaux.
4 Réponses :
Veuillez utiliser android:layout_gravity="bottom" ainsi que wrap_content :
<com.google.android.material.bottomnavigation.BottomNavigationView android:id="@+id/bottomNavigationView" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="bottom" app:menu="@menu/bottom_navigation_menu" />
Veuillez faire ne pas utiliser app:itemIconSize="70dp".
Lien de référence:
supprimer également le rembourrage
essayez celui-ci
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:color="@color/selected_color" android:state_checked="true" /> <item android:color="@color/disable_Color" android:state_checked="false" />
dans l'élément de menu
<item
android:id="@+id/navigation_home_tab"
android:enabled="true"
android:icon="@drawable/ic_navigation_home"
android:title="@string/home"/>
drawable -> @ drawable / bottom_view_color_change
<android.support.design.widget.BottomNavigationView
android:id="@+id/bottom_navigation"
android:layout_alignParentBottom="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:animateLayoutChanges="false"
android:splitMotionEvents="false"
android:fitsSystemWindows="false"
app:itemIconTint="@drawable/bottom_view_color_change"
app:itemTextColor="@drawable/bottom_view_color_change"
app:menu="@menu/bottom_navigation_menu
app:labelVisibilityMode="labeled"/>
Essayez d'utiliser le code ci-dessous.
Pour la conception de widget BottomNavigationView
private void bottomIconLarge() {
BottomNavigationMenuView menuView = (BottomNavigationMenuView) bottomNavigationView.getChildAt(0);
for (int i = 0; i < menuView.getChildCount(); i++) {
final View iconView = menuView.getChildAt(i).findViewById(android.support.design.R.id.icon);
final ViewGroup.LayoutParams layoutParams = iconView.getLayoutParams();
final DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
layoutParams.height = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 42, displayMetrics);
layoutParams.width = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 42, displayMetrics);
iconView.setLayoutParams(layoutParams);
}
}
Pour Conception de matériel BottomNavigationView
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- Main content -->
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/bottom_navigation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:background="@color/colorPrimary"
app:itemIconTint="@color/white"
app:itemTextColor="@color/white"
app:menu="@menu/bottom_navigation_menu" />
</FrameLayout>
Utilisez la méthode ci-dessous pour fixer la taille de l'icône de navigation inférieure souhaitée.
<android.support.design.widget.BottomNavigationView
android:id="@+id/navigation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_gravity="start"
android:background="@color/white"
app:itemIconTint="@drawable/nav_items_color"
app:itemTextColor="@drawable/nav_items_color"
app:menu="@menu/navigation"
android:visibility="visible"/>
J'utilise ConstraintLayout en tant que parent.
Ensuite, utilisez l'application: layout_constraintBottom_toBottomOf = "parent" insted of layout_gravity. @MalwinderSingh
Si vous souhaitez utiliser votre taille donnée et qu'elle a été fixée par vous, j'ai un code pour utiliser le code que vous pouvez personnaliser la taille de l'icône.
Le problème n'est pas que les icônes ne semblent pas grandes. Le problème est que les icônes sont coupées en bas et les titres chevauchent les icônes respectives.
Pouvez-vous afficher votre fichier @ menu / bottom_navigation_menu
Où se trouve le fichier bottom_navigation_menu?
Ajoutez ceci dans dimens.xml:
<dimen name="design_bottom_navigation_height" tools:override="true">80dp</dimen>
Et si vous créez android: layout_height = "wrap_content"?
Voulez-vous définir la hauteur fixe de bottomNavigationView? et après vous voulez une solution?
@AIMINPAN Il montre des icônes coupées en bas.
@DPrince Je veux afficher de grandes icônes et un titre en dessous.
@MalwinderSingh Le problème est dans votre icône. Vérifiez s'il y a plus d'espace
cette question mérite de nombreuses voix positives.
@MalwinderSingh si vous souhaitez donner la taille de l'icône, utilisez des icônes vectorielles