更改默认导航抽屉的图标大小

3

我想要改变默认导航抽屉的图标大小,同时在每个项目后面添加分割线,但我不知道如何实现。这是菜单抽屉视图:

<group android:checkableBehavior="single">
    <item
        android:id="@+id/agenda"
        android:icon="@drawable/agenda"
        android:title="AGENDA"
        />
    <item
        android:id="@+id/speakers"
        android:icon="@drawable/speakers"
        android:title="SPEAKERS" />
    <item
        android:id="@+id/schedule"
        android:icon="@drawable/schedule"
        android:title="SCHEDULE" />
    <item
        android:id="@+id/organiser"
        android:icon="@drawable/organiser"
        android:title="ORGANISER" />
    <item
        android:id="@+id/partners"
        android:icon="@drawable/partner"
        android:title="PARTNERS" />
    <item
        android:id="@+id/event_info"
        android:icon="@drawable/eventinfo"
        android:title="EVENT-INFO" />
</group>

这是dimens.xml文件。
<resources>
    <!-- Default screen margins, per the Android Design guidelines. -->
    <dimen name="activity_horizontal_margin">16dp</dimen>
    <dimen name="activity_vertical_margin">16dp</dimen>
    <!-- Default screen margins, per the Android Design guidelines. -->
    <dimen name="nav_header_vertical_spacing">16dp</dimen>
    <dimen name="nav_header_height">160dp</dimen>
</resources>
4个回答

8
在 /values/dimens.xml 中设置 design_navigation_icon_size 和 design_navigation_icon_padding 对我有效。
<dimen name="design_navigation_icon_size" tools:override="true">10dp</dimen>
<dimen name="design_navigation_icon_padding" tools:override="true">10dp</dimen>

图标填充部分对我来说无法工作。请帮忙一下? - Daniel Reyhanian

3

您可以通过在dimens.xml中覆盖design_navigation_icon_size属性来更改导航抽屉图标的大小。

<dimen name="design_navigation_icon_size" tools:override="true">40dp</dimen>

为每个项目添加分隔符,您应该为每个组项提供唯一的id,如下所示。
<group 
      android:id="@+id/group_item_1"
      android:checkableBehavior="single">
 <item
    android:id="@+id/agenda"
    android:icon="@drawable/agenda"
    android:title="AGENDA"/>
 </group> 

 <group 
      android:id="@+id/group_item_2"
      android:checkableBehavior="single">
 <item
    android:id="@+id/speakers"
    android:icon="@drawable/speakers"
    android:title="SPEAKERS" />
 </group> 

 <group 
      android:id="@+id/group_item_3"
      android:checkableBehavior="single">
 <item
    android:id="@+id/schedule"
    android:icon="@drawable/schedule"
    android:title="SCHEDULE" />
 </group> 

 <group 
      android:id="@+id/group_item_4"
      android:checkableBehavior="single">
 <item
    android:id="@+id/organiser"
    android:icon="@drawable/organiser"
    android:title="ORGANISER" />
 </group> 

 <group 
      android:id="@+id/group_item_5"
      android:checkableBehavior="single">
 <item
    android:id="@+id/partners"
    android:icon="@drawable/partner"
    android:title="PARTNERS" />
 </group> 

 <group 
      android:id="@+id/group_item_6"
      android:checkableBehavior="single">
 <item
    android:id="@+id/event_info"
    android:icon="@drawable/eventinfo"
    android:title="EVENT-INFO" />
</group>

覆盖dimens.xml文件中的这些行以删除填充内容。

<dimen name="design_navigation_padding_top_default" tools:override="true">0dp</dimen>
<dimen name="design_navigation_separator_vertical_padding" tools:override="true">0dp</dimen>
<dimen name="design_navigation_padding_bottom" tools:override="true">0dp</dimen>

这个答案比第一个更好。 - Nishant Jalan

1

你可以使用这个:

R.id.navigationView.setItemIconSize(200)

0

尝试使用这个来进行分割

<group android:checkableBehavior="single">
<item
    android:id="@+id/agenda"
    android:icon="@drawable/agenda"
    android:title="AGENDA"
    />
</group>

<group android:checkableBehavior="single">
<item
    android:id="@+id/speakers"
    android:icon="@drawable/speakers"
    android:title="SPEAKERS" />
</group>

<group android:checkableBehavior="single">
<item
    android:id="@+id/schedule"
    android:icon="@drawable/schedule"
    android:title="SCHEDULE" />
</group>

<group android:checkableBehavior="single">
<item
    android:id="@+id/organiser"
    android:icon="@drawable/organiser"
    android:title="ORGANISER" />
</group>

<group android:checkableBehavior="single">
<item
    android:id="@+id/partners"
    android:icon="@drawable/partner"
    android:title="PARTNERS" />
</group>

<group android:checkableBehavior="single">
<item
    android:id="@+id/event_info"
    android:icon="@drawable/eventinfo"
    android:title="EVENT-INFO" />
</group>

对于图标,图标的大小必须为24dp。

请查看以下链接以获取图标大小: https://material.io/guidelines/patterns/navigation-drawer.html#navigation-drawer-specshttps://material.io/guidelines/layout/metrics-keylines.html#metrics-keylines-touch-target-size


图标大小太小了,看起来非常小,在尺寸上也没有指定图标大小...那么在哪里添加图标大小? - Ankita Sethi
你不需要为导航抽屉定义图标大小。 - Patel Pinkal
请按照 Android 的要求检查图标大小。请查看以下链接:https://material.io/guidelines/patterns/navigation-drawer.html#navigation-drawer-specs 和 https://material.io/guidelines/layout/metrics-keylines.html#metrics-keylines-touch-target-size。 - Patel Pinkal
如果您已经得到了答案,请在 StackOverflow 上打勾。 - Patel Pinkal

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