Androidの下部ナビゲーションバーを使用しています。デフォルトでは、アイテムを選択すると、そのアイテムのラベルのテキストサイズが大きくなります。ここで「トーナメント」のラベルに見られるように。
これを削除してWordの「トーナメント」を同じサイズに保つ方法はありますか?
このコードをdimens.xml
ファイルに追加してみてください
<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>
スタイルを使用して、BottomNavigationViewのactiveおよびinactive textAppearanceを設定できます。
<Android.support.design.widget.BottomNavigationView
Android:id="@+id/navigation"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
style="@style/BottomNavigationView"/>
以下のスタイルをstyles.xml
ファイル
<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>
TextAppearanceを使用すると、textSize
だけでなく、fontFamily
などのプロパティも制御できます。
サポートライブラリ '28.0.0-alpha1'以上を使用している場合、2つの簡単なことを行う必要があります-
Dimen.xmlファイルに以下の2行を追加します
<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>
そして、ビューで-
<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" />
app:labelVisibilityMode="labeled"
それはすべてお楽しみいただけます:-)
このメソッドをonCreate()で、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);
}
}
}
そして、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>
以下のすべてのコントロールUI BottomNavigationView。 BottomNavigationViewの依存関係com.google.Android.material:materialを使用しました。
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() );
}
}
}