图标和NavigationView之间的左边距

Lui*_*rra 3 java android android-layout android-view navigationview

我必须在图标和NavigationView图像中的箭头之间添加左边距:

在此输入图像描述

我知道根据谷歌的规格,这个保证金必须有,16dp但我需要改变它.我试过了:

 <dimen tools:override="true" name="design_navigation_icon_padding">64dp</dimen>
 <dimen tools:override="true" name="design_navigation_separator_vertical_padding">20dp</dimen>
Run Code Online (Sandbox Code Playgroud)

但仍然没有工作.有任何想法吗?

azi*_*ian 5

该项的xml布局是 design_navigation_item.xml

<android.support.design.internal.NavigationMenuItemView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="?attr/listPreferredItemHeightSmall"
        android:paddingLeft="?attr/listPreferredItemPaddingLeft"
        android:paddingRight="?attr/listPreferredItemPaddingRight"
        android:foreground="?attr/selectableItemBackground"
        android:focusable="true"/>
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,应用的填充是从活动的主题中获取的 - listPreferredItemPaddingLeftlistPreferredItemPaddingRight.因此,您必须应用自定义主题以NavigationView使用必要的值覆盖这些属性.

styles.xml:

<style name="MyNavigationViewItemStyle" parent="AppTheme">
    <item name="listPreferredItemPaddingLeft">0dp</item>
    <item name="listPreferredItemPaddingRight">0dp</item>
</style>
Run Code Online (Sandbox Code Playgroud)

我们要改变只有这两个属性,从活动的主题,因此,我们正在扩展的主题,那就是应用活动.

在布局中xml:

<android.support.design.widget.NavigationView
    ...
    app:theme="@style/MyNavigationViewItemStyle"/>
Run Code Online (Sandbox Code Playgroud)

结果

在此输入图像描述