如何在安卓中增加底部导航栏视图的高度并同时调整图标和文本大小?

23

我正在使用

compile 'com.android.support:design:25.0.0'

Android底部导航视图的高度是固定的,显示小图标和小文字。我的问题是如何增加它们的大小?我尝试通过样式在xml文件中更改大小...除了textsize属性外,所有其他属性都有效。

如果可以,在代码中怎么做,请提供代码。

5个回答

51

我已经找到了一种方法来覆盖dimens.xml文件中的某些尺寸值,它可以用于文本大小,但图标仍然很小。以下是我的做法。希望这段代码也能帮助其他人 :-)

<!-- Overriding Default Bottom Navigation sizes-->
    <dimen name="design_bottom_navigation_text_size" tools:override="true">16sp</dimen>
    <dimen name="design_bottom_navigation_active_text_size" tools:override="true">20sp</dimen>
    <dimen name="design_bottom_navigation_height" tools:override="true">70dp</dimen>

1
运行成功!感谢 @RamshaS - Kenny Dabiri
它增加了底部导航视图的高度,而不是图标大小。 - gopalanrc
我认为在这里提供一个BottomNavigationView源代码链接会很有帮助。要查找其他尺寸属性,请参见以下链接:https://github.com/material-components/material-components-android/blob/master/lib/java/com/google/android/material/bottomnavigation/res/values/dimens.xml - Bruno Bieri

22

对于那些想要提高其他值的人,以下是所有可设置的值的列表,对RamshaS回答进行拓展。

bottom_navigation_elevation
bottom_navigation_height
bottom_navigation_icon
bottom_navigation_margin_bottom
bottom_navigation_margin_top_active
bottom_navigation_margin_top_inactive
bottom_navigation_max_width
bottom_navigation_min_width
bottom_navigation_notification_elevation
bottom_navigation_notification_height
bottom_navigation_notification_margin_left
bottom_navigation_notification_margin_left_active
bottom_navigation_notification_margin_top
bottom_navigation_notification_margin_top_active
bottom_navigation_notification_margin_top_classic
bottom_navigation_notification_padding
bottom_navigation_notification_radius
bottom_navigation_notification_text_size
bottom_navigation_notification_width
bottom_navigation_padding_left
bottom_navigation_padding_right
bottom_navigation_small_active_max_width
bottom_navigation_small_active_min_width
bottom_navigation_small_inactive_max_width
bottom_navigation_small_inactive_min_width
bottom_navigation_small_margin_bottom
bottom_navigation_small_margin_top
bottom_navigation_small_margin_top_active
bottom_navigation_small_selected_width_difference
bottom_navigation_text_size_active
bottom_navigation_text_size_forced_active
bottom_navigation_text_size_forced_inactive
bottom_navigation_text_size_inactive

有没有办法以编程方式更改这些值? - Ctorres

20

这是默认设置

<dimen name="design_bottom_navigation_active_item_max_width">168dp</dimen>
<dimen name="design_bottom_navigation_active_item_min_width">96dp</dimen>
<dimen name="design_bottom_navigation_active_text_size">14sp</dimen>
<dimen name="design_bottom_navigation_elevation">8dp</dimen>
<dimen name="design_bottom_navigation_height">56dp</dimen>
<dimen name="design_bottom_navigation_icon_size">24dp</dimen>
<dimen name="design_bottom_navigation_item_max_width">96dp</dimen>
<dimen name="design_bottom_navigation_item_min_width">56dp</dimen>
<dimen name="design_bottom_navigation_margin">8dp</dimen>
<dimen name="design_bottom_navigation_shadow_height">1dp</dimen>
<dimen name="design_bottom_navigation_text_size">12sp</dimen>
<color name="design_bottom_navigation_shadow_color">#14000000</color>

8
你可以在dimens.xml中像@RamshaS所述的那样覆盖底部导航的正确值,具体值如下:
design_bottom_navigation_active_item_max_width
design_bottom_navigation_active_text_size
design_bottom_navigation_elevation
design_bottom_navigation_height
design_bottom_navigation_item_max_width
design_bottom_navigation_item_min_width
design_bottom_navigation_margin
design_bottom_navigation_shadow_height
design_bottom_navigation_text_size
design_bottom_navigation_item_background
design_bottom_navigation_item
design_bottom_navigation_shadow_color

我尝试在dimens.xml中覆盖@Kobus Pitzer的列表中的许多值,但在覆盖模式下不起作用。它们可能是可以通过代码而不是通过dimens.xml覆盖的值。


-1
我在BottomNavigationView中使用了scaleX和scaleY,同时添加了开始和结束内边距来调整底部工具栏图标的位置,解决了不同屏幕尺寸下图标和文本大小不一致的问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接