如何在安卓底部导航栏中更改文本内边距

20

我在使用安卓应用的底部导航栏。我已经增加了图标的大小,但是现在图标超出了文本范围。这是我看到的:

enter image description here

这是谷歌设计文档中底部导航视图的示意图:

enter image description here

数字10,我想更改填充值,但是当我查看导航栏属性时,我找不到可以更改的地方。如何将其更改为较小的数字?在我的bottom_layout.xml中,我设置我的项如下:

<item
    android:id="@+id/menu_notifications"
    android:title="Professionals"
    android:icon="@drawable/ic_action_name"
    app:showAsAction="ifRoom"
    />

我该如何改变底部文本的填充?

谢谢


您可以使用样式来调整导航视图的外观。请参考此解决方案 - Aldrin Joe Mathew
2个回答

24

通过覆盖以下尺寸,您可以更改BottomNavigationView的高度

<dimen name="design_bottom_navigation_height" tools:override="true">52dp</dimen>

这将增加高度并降低文本以避免重叠。


1
哇,它的工作效果真是太棒了。我曾经遇到过关于10英寸平板电脑的问题。 - Prashant Jajal
1
如果这不起作用,请将高度增加到 >56dp。 显然默认值为56:https://github.com/material-components/material-components-android/blob/master/lib/java/com/google/android/material/bottomnavigation/res/values/dimens.xml - riadrifai
你能否只为应用程序中的一个 bnv 进行更改?我有多个 bnv,而且更改会影响所有人。 - Pablo R.

1
我能够使用形状来改变项目的顶部和底部填充,并将其设置在 BottomNavigationView 的 app:itemBackground 属性中。请创建 my_shape.xml 文件,在其中可以更改顶部和底部填充。
<?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="@android:color/transparent" />
    <padding
        android:bottom="5dp"
        android:top="5dp"
    />
</shape>

接下来,创建my_selector.xml文件。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item
        android:state_checked="true"
        android:drawable="@drawable/my_shape" />

</selector>

最后,将BottomNavigationView的itemBackground设置为:
app:itemBackground="@drawable/my_selector"

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