【问题标题】:Divider in Navigation Drawer using a xml menu导航抽屉中的分隔线使用 xml 菜单
【发布时间】:2015-07-22 09:52:21
【问题描述】:

我一直在关注最新的 (?) tutorial of how to implement a Material Design Navigation Drawer with this blogpost.

它使用菜单资源 (xml) 代替填充列表视图。非常整洁和简单,但是..

我不知道如何在菜单项之间添加分隔线。 来自材料设计规范的图片:

menu.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android">
   <group android:checkableBehavior="single">
      <item
         android:id="@+id/item_1"
         android:checked="true"
         android:icon="@android:drawable/ic_menu_info_details"
         android:title="Item1"
      />
      <item
         android:id="@+id/item_2"
         android:icon="@android:drawable/ic_menu_agenda"
         android:title="Item2"
      />
      <item
         android:id="@+id/item_3"
         android:icon="@android:drawable/ic_menu_mapmode"
         android:title="Item3"
      />
      <item
         android:id="@+id/item_4"
         android:icon="@android:drawable/ic_menu_help"
         android:title="Item4"
      />
   </group>
</menu>

我尝试过按组划分,但它没有给我任何分隔符。当我添加一个子菜单时,我得到了一个分隔线,但也有一个不需要的标题。

像这样:

<menu xmlns:android="http://schemas.android.com/apk/res/android">
  <group android:checkableBehavior="single">
    <item
      android:id="@+id/item_1"
      android:checked="true"
      android:title="Header1"
    >
      <menu>
        <item
          android:id="@+id/item_2"
          android:icon="@android:drawable/ic_menu_agenda"
          android:title="SubItem1"
        />
      </menu>
    </item>
    <item
      android:id="@+id/item_2"
      android:icon="@android:drawable/ic_menu_agenda"
      android:title="Item2"
    />
    <item
      android:id="@+id/item_3"
      android:icon="@android:drawable/ic_menu_mapmode"
      android:title="Item3"
    />
    <item
       android:id="@+id/item_4"
       android:icon="@android:drawable/ic_menu_help"
       android:title="Item4"
    />
  </group>
</menu>

我想要分隔线,而不是标题。 在此先感谢,感谢您的帮助!

【问题讨论】:

  • 您可以尝试为第二组项目添加空标题。
  • 您好,不确定“第二组项目”是什么(您在代码中有唯一的 ID 和标题,请参阅 =))。我试过在 Header1 中有空的title,但它仍然会向下推菜单并为标题留下分配的区域。
  • 为此您可以使用自定义列表视图。
  • 解决方案:当且仅当您提供组 id 属性时,您会在组之间获得分隔符。

标签: android navigation-drawer material-design


【解决方案1】:

要在每个菜单项之后添加分隔符,请为每个组项提供唯一的id,如下所示

<group
    android:id="@+id/group_item_1"
    android:checkableBehavior="single">
    <item
        android:id="@+id/nav_agreement"
        android:icon="@mipmap/ic_launcher"
        android:title="Agreement" />
</group>
<group
    android:id="@+id/group_item_2"
    android:checkableBehavior="single">
    <item
        android:id="@+id/nav_aboutus"
        android:icon="@mipmap/ic_launcher"
        android:title="About Us" />
</group>
<group
    android:id="@+id/group_item_3"
    android:checkableBehavior="single">
    <item
        android:id="@+id/nav_terms"
        android:icon="@mipmap/ic_launcher"
        android:title="Terms Condition  " />
</group>
<group
    android:id="@+id/group_item_4"
    android:checkableBehavior="single">
    <item
        android:id="@+id/nav_chngpassword"
        android:icon="@mipmap/ic_launcher"
        android:title="Change Password" />
</group>
<group
    android:id="@+id/group_item_5"
    android:checkableBehavior="single">
    <item
        android:id="@+id/nav_signout"
        android:icon="@mipmap/ic_launcher"
        android:title="Sign Out" />
</group>

【讨论】:

  • 谢谢!诀窍是将 android:id 放入 &lt;group&gt; 。否则,分隔线不会出现。
  • 如何更改 的分隔线颜色
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-09
  • 2015-09-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多