J'utilise la barre de navigation inférieure dans Android. Par défaut, lorsque je sélectionne un élément, la taille du texte de l'étiquette de cet élément augmente. Comme le montre ici le label "tournois".
Existe-t-il un moyen de supprimer cela pour que les "tournois" Word restent de la même taille?
Essayez d'ajouter ce code dans dimens.xml
fichier
<dimen name="design_bottom_navigation_text_size" tools:override="true">10sp</dimen>
<dimen name="design_bottom_navigation_active_text_size" tools:override="true">10sp</dimen>
Vous pouvez définir les active et inactive textAppearance pour une BottomNavigationView via des styles:
<Android.support.design.widget.BottomNavigationView
Android:id="@+id/navigation"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
style="@style/BottomNavigationView"/>
Mettez les styles ci-dessous dans styles.xml
fichier
<style name="BottomNavigationView">
<item name="itemTextAppearanceActive">@style/TextAppearance.BottomNavigationView.Active</item>
<item name="itemTextAppearanceInactive">@style/TextAppearance.BottomNavigationView.Inactive</item>
</style>
<!-- blank styles for better code readability-->
<style name="TextAppearance"/>
<style name="TextAppearance.BottomNavigationView"/>
<!-- inactive tab icon style -->
<style name="TextAppearance.BottomNavigationView.Inactive">
<item name="Android:textSize">12sp</item>
</style>
<!-- active tab icon style -->
<style name="TextAppearance.BottomNavigationView.Active">
<item name="Android:textSize">12sp</item>
</style>
Avec TextAppearance, vous pouvez contrôler plus que textSize
, mais aussi des propriétés telles que fontFamily
, etc.
Vous devez faire 2 choses simples si vous utilisez la bibliothèque de support '28.0.0-alpha1' ou plus -
Ajoutez ci-dessous deux lignes dans votre fichier dimen.xml
<dimen name="design_bottom_navigation_text_size" tools:override="true">15sp</dimen>
<dimen name="design_bottom_navigation_active_text_size" tools:override="true">15sp</dimen>
Et en vue -
<Android.support.design.widget.BottomNavigationView
Android:id="@+id/navigation"
Android:layout_width="0dp"
Android:layout_height="wrap_content"
Android:background="@color/colorPrimary"
Android:foreground="?attr/selectableItemBackground"
app:itemIconTint="@color/colorAccent"
app:itemTextColor="@color/colorAccent"
Android:elevation="16dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:labelVisibilityMode="labeled"
app:menu="@menu/navigation" />
Mettez app:labelVisibilityMode="labeled"
C'est tout profiter :-)
Utilisez cette méthode dans onCreate () et avant bottom_navigation_menu.setOnNavigationItemSelectedListener: -
public void removePaddingFromBottomNavigationItem() {
BottomNavigationMenuView menuView = (BottomNavigationMenuView) bottom_navigation_menu.getChildAt(0);
for (int i = 0; i < menuView.getChildCount(); i++) {
BottomNavigationItemView item = (BottomNavigationItemView) menuView.getChildAt(i);
View activeLabel = item.findViewById(R.id.largeLabel);
if (activeLabel instanceof TextView) {
activeLabel.setPadding(0, 0, 0, 0);
}
}
}
Et utilisez ce code dans styles.xml: -
<style name="TextAppearance.BottomNavigationView.Inactive">
<item name="Android:textSize">@dimen/_10ssp</item>
</style>
<style name="TextAppearance.BottomNavigationView.Active">
<item name="Android:textSize">@dimen/_10ssp</item>
</style>
Tous contrôlent l'interface utilisateur BottomNavigationView, ci-dessous. J'ai utilisé la dépendance com.google.Android.material: matériel pour BottomNavigationView.
private void editBottomNavigationViewItems(BottomNavigationView bottomNavigationView) {
for (int i = 0; i < bottomNavigationView.getChildCount(); i++) {
try {
View item = bottomNavigationView.getChildAt( i );
if (item instanceof BottomNavigationMenuView) {
BottomNavigationMenuView menu = (BottomNavigationMenuView) item;
for (int j = 0; j < menu.getChildCount(); j++) {
try {
View menuItem = menu.getChildAt( j );
// not chosen item menu GO
View _small = menuItem.findViewById(com.google.Android.material.R.id.smallLabel);//dependence com.google.Android.material:material
//View _small = menuItem.findViewById(Android.support.design.R.id.smallLabel);// dependence Android.support.design
if ( _small instanceof TextView ) {
//_small.setPadding(0, 0, 0, 0);// remove all padding
TextView _tv = (TextView)_small;
_tv.setTextSize( 12 );// set size text
}// not chosen item menu END
//this chosen item menu GO
View _large = menuItem.findViewById(com.google.Android.material.R.id.largeLabel);//dependence com.google.Android.material:material
//View _large = menuItem.findViewById(Android.support.design.R.id.largeLabel);//dependence Android.support.design.R.id.largeLabel
if ( _large instanceof TextView ) {
_large.setPadding(0,0,0,0);// remove all padding
TextView _tv = (TextView)_large;
_tv.setTextSize( 12 );// set size text
}// this chosen item menu END
} catch ( NullPointerException npei ) {
Log.e("TAG", "get:BottomNavigationMenuView: " + npei.getMessage() );
}
}
}
} catch ( NullPointerException npe ) {
Log.e("TAG", "get:BottomNavigationView: " + npe.getMessage() );
}
}
}