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)
但仍然没有工作.有任何想法吗?
该项的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)
正如您所看到的,应用的填充是从活动的主题中获取的 - listPreferredItemPaddingLeft和listPreferredItemPaddingRight.因此,您必须应用自定义主题以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)
结果