web-dev-qa-db-ja.com

下部ナビゲーションバー:押すとテキストサイズが大きくなりますか?

Androidの下部ナビゲーションバーを使用しています。デフォルトでは、アイテムを選択すると、そのアイテムのラベルのテキストサイズが大きくなります。ここで「トーナメント」のラベルに見られるように。

enter image description here

enter image description here

これを削除してWordの「トーナメント」を同じサイズに保つ方法はありますか?

13
Lewis Black

このコードを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>
21
Mitesh Vanaliya

スタイルを使用して、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などのプロパティも制御できます。

17
Jason Grife

サポートライブラリ '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"

それはすべてお楽しみいただけます:-)

2
Bajrang Hudda

このメソッドを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>
0
Ankit Lathiya

以下のすべてのコントロール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() );
            }

        }

    }
0
amiron