Android 中的 NavigationView 项目填充

Sum*_*kla 6 android navigationview android-navigationview material-components material-components-android

如何为 NavigationView 中的项目设置填充。我需要为项目设置 paddingLeft,因为我已经删除了图标。我尝试过的是这个,但它不起作用:

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:openDrawer="start">

<android.support.design.widget.NavigationView
    android:id="@+id/nav_view"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:fitsSystemWindows="true"
    android:focusable="true"
    android:foreground="?attr/selectableItemBackground"
    app:headerLayout="@layout/nav_header_navigation_drawer"
    app:itemBackground="@drawable/selected_background"
    app:itemTextAppearance="@style/Drawer"
    app:menu="@menu/activity_navigation_drawer_drawer" />
Run Code Online (Sandbox Code Playgroud)

我的 Drawer.xml 文件样式:

<style name="Drawer">
    <item name="android:listPreferredItemPaddingLeft">50dp</item>
    <item name="android:textSize">30sp</item>
    <item name="android:typeface">serif</item>
</style>
Run Code Online (Sandbox Code Playgroud)

Ale*_*dro 7

如果有人想使用最新的材料设计调整 NavigationDrawer 中项目的内边距,请查看这些新属性app:itemIconPaddingapp:itemHorizo​​ntalPadding

app:itemIconPadding将调整您的图标和项目文本之间的内边距 app:itemHorizo​​ntalPadding,顾名思义,将从左右水平调整项目的内边距。

<com.google.android.material.navigation.NavigationView
            android:id="@+id/nav_view"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_gravity="start"
            android:fitsSystemWindows="true"

            app:itemIconPadding="16dp"
            app:itemHorizontalPadding="10dp"

            app:menu="@menu/nav_drawer_menu" />`
Run Code Online (Sandbox Code Playgroud)


Gab*_*tti 5

由于您使用的是没有图标的菜单,因此您可以使用该app:itemHorizontalPadding属性:

<com.google.android.material.navigation.NavigationView
    app:itemHorizontalPadding="2dp"
    ../>
Run Code Online (Sandbox Code Playgroud)

默认值和自定义值的结果:

在此输入图像描述 在此输入图像描述

使用app:itemShapeInsetStart="0dp"来更改形状的边距:

在此输入图像描述


Sar*_*han 0

您可以在 res->values->dimension 文件夹下添加此值离子维度文件,并添加以下代码行。

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

  • 我被要求这样做。这就是原因! (2认同)