【问题标题】:Change Icon size of Default Navigation Drawer更改默认导航抽屉的图标大小
【发布时间】:2022-02-21 20:10:42
【问题描述】:

尝试更改默认导航抽屉的图标大小并在每个项目后添加一个分隔线,但我不明白该怎么做?这是菜单抽屉视图:

<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>

【问题讨论】:

    标签: android xml android-layout


    【解决方案1】:

    在 dimens.xml 中设置 design_navigation_icon_size 和 design_navigation_icon_padding 对我有用。

    /values/dimens.xml

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

    【讨论】:

    • 图标填充部分不适合我。有什么帮助吗?
    【解决方案2】:

    您可以通过覆盖 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>
    

    【讨论】:

    • 这是一个比第一个更好的答案。
    【解决方案3】:

    你可以用这个:

    R.id.navigationView.setItemIconSize(200)
    

    【讨论】:

      【解决方案4】:

      试试这个作为分隔符

      <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

      【讨论】:

      • 图标尺寸太小了,因为它看起来很小,并且在维度上没有指定图标尺寸...那么在哪里添加图标尺寸?
      • 您不必为导航抽屉定义图标大小
      • 请根据 android 检查图标大小。检查此链接 material.io/guidelines/patterns/…material.io/guidelines/layout/…
      • 如果您得到了答案,请在 StackOverflow 中勾选答案
      猜你喜欢
      • 2018-09-29
      • 1970-01-01
      • 2016-11-01
      • 1970-01-01
      • 2018-10-19
      • 1970-01-01
      • 2016-10-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多