如何在android中增加底部导航视图的高度及其图标和文本大小?

Posted

技术标签:

【中文标题】如何在android中增加底部导航视图的高度及其图标和文本大小?【英文标题】:How to increase Bottom Navigation View height along with its icon and text sizes in android? 【发布时间】:2017-07-08 05:17:53 【问题描述】:

我正在使用

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

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

如果可以的话,我可以务实地这样做吗,那么请写一个代码

【问题讨论】:

【参考方案1】:

我找到了一个解决方案来覆盖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>

【讨论】:

成功了!谢谢@RamshaS 它增加了底部导航视图的高度,而不是图标的大小。 我认为BottomNavigationView 源代码的链接在这里会有所帮助。要查找其他维度属性,请查看此处:github.com/material-components/material-components-android/blob/…【参考方案2】:

为那些希望增加其他价值的人扩展 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

【讨论】:

有没有办法以编程方式更改这些值?【参考方案3】:

这是默认的

<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>

【讨论】:

【参考方案4】:

您可以在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

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

【讨论】:

【参考方案5】:

我在 BottomNavigationView 上使用了 scaleX 和 scaleY, 添加开始和结束填充以将底栏图标调整到所需位置。 解决不同屏幕尺寸的图标和文字大小问题。

【讨论】:

以上是关于如何在android中增加底部导航视图的高度及其图标和文本大小?的主要内容,如果未能解决你的问题,请参考以下文章

如何在android通知中增加remoteview的高度

如何获取Android手机底部导航栏的高度

如何在android中删除底部导航视图的图标动画

如何在android中使用底部导航视图时恢复片段状态?

如何使用底部导航视图和 Android 导航组件将参数传递给片段?

如何保存底部导航片段的状态 - 具有单个导航图的 Android 导航组件