J'ai expérimenté le nouveau BottomNavigationView et essayé de le personnaliser.
Jusqu'à présent, j'ai réussi à modifier la hauteur et les marges en utilisant ce qui suit:
<dimen name="design_bottom_navigation_height" tools:override="true">75dp</dimen>
<dimen name="design_bottom_navigation_margin" tools:override="true">5dp</dimen>
Je souhaite augmenter la taille des icônes.
Comment cela peut-il être fait?
Compiler la version: com.Android.support:design:25.0.1
tardif mais récent
Utilisation implementation 'com.Android.support:design:28.0.0'
Bibliothèque de support de conception.
Il existe une propriété pour changer la taille de l'icône:
<Android.support.design.widget.BottomNavigationView
app:itemIconSize="@dimen/_26sdp"
....
....
</Android.support.design.widget.BottomNavigationView>
par programme:
dashboardNavigation.setItemIconSize(24);
Je vous remercie.
La taille de l'icône est codée en dur à 24dp dans la disposition des éléments (voir design_bottom_navigation_item.xml ) et peut être modifiée par programme:
BottomNavigationView bottomNavigationView = (BottomNavigationView) configurationActivity.findViewById(R.id.bottom_navigation_view);
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, 32, displayMetrics);
layoutParams.width = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 32, displayMetrics);
iconView.setLayoutParams(layoutParams);
}
Pour androidx utilisez cet identifiant pour les icônes andcom.google.Android.material.R.id.icon
Le code complet:
BottomNavigationView bottomNavigationView = (BottomNavigationView) configurationActivity.findViewById(R.id.bottom_navigation_view);
BottomNavigationMenuView menuView = (BottomNavigationMenuView) bottomNavigationView.getChildAt(0);
for (int i = 0; i < menuView.getChildCount(); i++) {
final View iconView = menuView.getChildAt(i).findViewById(com.google.Android.material.R.id.icon);
final ViewGroup.LayoutParams layoutParams = iconView.getLayoutParams();
final DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
layoutParams.height = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 32, displayMetrics);
layoutParams.width = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 32, displayMetrics);
iconView.setLayoutParams(layoutParams);
}