更改BottomNavigationView的图标大小

Sit*_*ock 9 android bottomnavigationview

我一直在尝试新的BottomNavigationView并尝试自定义它.

到目前为止,我已设法通过使用以下内容更改高度和边距:

<dimen name="design_bottom_navigation_height" tools:override="true">75dp</dimen>
<dimen name="design_bottom_navigation_margin" tools:override="true">5dp</dimen>
Run Code Online (Sandbox Code Playgroud)

我想增加图标的大小.

如何才能做到这一点?

编译版本:com.android.support:design:25.0.1

ot.*_*ot. 31

图标大小在项目布局中硬编码为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);
}
Run Code Online (Sandbox Code Playgroud)

  • 我不敢相信他们硬编码大小并且没有使用样式属性来设置值,这可以为开发人员带来更多灵活性...... (6认同)

Pra*_*ani 25

迟到但最新

使用implementation 'com.android.support:design:28.0.0'设计支持库.

有一个属性可以更改图标大小:

<android.support.design.widget.BottomNavigationView
    app:itemIconSize="@dimen/_26sdp"
    ....
    ....
</android.support.design.widget.BottomNavigationView>
Run Code Online (Sandbox Code Playgroud)

编程方式:

dashboardNavigation.setItemIconSize(24);
Run Code Online (Sandbox Code Playgroud)

谢谢.