2017-01-07 11 views
4

私は新しいBottomNavigationViewを試してみて、それをカスタマイズしようとしています。ボトムナビビューのアイコンサイズを変更する

これまでのところ、私は以下を使用して高さや余白を変更するために管理している:

<dimen name="design_bottom_navigation_height" tools:override="true">75dp</dimen> 
<dimen name="design_bottom_navigation_margin" tools:override="true">5dp</dimen> 

私はアイコンのサイズを増やすことをお勧めします。

どうすればいいですか?

コンパイルバージョン:com.android.support:design:25.0.1

+0

参照https://stackoverflow.com/questions/42318954/how-to-increase-bottom-navigation-view-height-along-with-its-icon-and-text-sizes/47030341#47030341 –

答えて

16

アイコンサイズが項目レイアウトで24dpにハードコードされている(design_bottom_navigation_item.xmlを参照)、プログラムで変更することができる。

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); 
} 
+0

返信いただきありがとうございます働いた。 – SitRock

+4

私は彼らがサイズをハードコードしているとは信じられませんし、開発者にもっと柔軟性をもたらすことができる値を設定するためにスタイル属性を使用しませんでした... –

関連する問題