2017-01-07 180 views
4

我一直在試驗新的BottomNavigationView並嘗試對其進行自定義。更改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

我不敢相信他們硬編碼的大小,並沒有使用樣式屬性來設置值,這可以爲開發人員帶來更多的靈活性... –