Android支持设计库提供NavigationView:
<android.support.design.widget.NavigationView
...
app:menu="@menu/navigation_drawer_items" />
Run Code Online (Sandbox Code Playgroud)
菜单/ navigation_drawer_items:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
<item .../>
...
</group>
<group android:checkableBehavior="single">
<item .../>
...
</group>
</menu>
Run Code Online (Sandbox Code Playgroud)
如何在组之间添加分隔符,分隔符或空格(如图片所示)?

我创建了两个具有唯一ID的组(我需要一个分隔符),它们都checkableBehavior设置为单一.这允许同时检查来自不同组的多个项目,这正是我想要避免的.我想在所有群组中最多检查一件商品.
由于我还没有找到任何方法在XML中执行此操作,我尝试实现一个简单的逻辑onNavigationItemSelected来取消选中上一个菜单项:
if (previousItem != null)
previousItem.setChecked(false);
currentItem.setChecked(true);
Run Code Online (Sandbox Code Playgroud)
但setChecked(false)方法从来没有对我有用 - 项目保持检查.
这是我的示例代码:
menu_navigation.xml:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group
android:id="@+id/nav_group_1"
android:checkableBehavior="single">
<item
android:id="@+id/nav_feed"
android:title="@string/feed"/>
<item
android:id="@+id/nav_people"
android:title="@string/people"/>
</group>
<group
android:id="@+id/nav_group_2"
android:checkableBehavior="single">
<item
android:id="@+id/nav_settings"
android:title="@string/settings"/>
<item
android:id="@+id/nav_help_feedback"
android:title="@string/help_feedback"/>
<item
android:id="@+id/nav_logout"
android:title="@string/logout"/>
</group>
Run Code Online (Sandbox Code Playgroud)
NavigationItemSelectedListener:
mUiNavigationView.setNavigationItemSelectedListener(
new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(MenuItem menuItem) {
if (previousItem != null)
previousItem.setChecked(false);
currentItem.setChecked(true);
//...
changeCurrentFragment(...);
return true;
}
});
Run Code Online (Sandbox Code Playgroud)
我需要一个提示!谢谢.
android android-support-library navigation-drawer material-design navigationview
android android-support-library material-design android-design-library android-navigationview
如何在新的NavigationView中放置没有标题子组的分隔符?
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
<item
android:id="@+id/drawer_armario"
android:icon="@drawable/armario"
android:title="@string/armario" />
<item
android:id="@+id/drawer_amigos"
android:icon="@drawable/amigos"
android:title="@string/amigos" />
</group>
<item android:title="Configuración">
<menu>
<item
android:id="@+id/drawer_ajustes"
android:icon="@drawable/ajustes"
android:title="@string/ajustes" />
<item
android:id="@+id/drawer_ayuda"
android:icon="@drawable/ayuda"
android:title="@string/ayuda" />
<item
android:id="@+id/drawer_sign_out"
android:icon="@drawable/sign_out"
android:title="@string/sign_out" />
</menu>
</item>
Run Code Online (Sandbox Code Playgroud)
我想在没有Configuración标题的情况下在amigos和ajustes项目之间添加一条线.
谢谢!!!
android divider android-support-library navigationview android-navigationview
我在操作栏(实际上是工具栏)中有一个菜单项,当单击时,会显示可供选择的项目列表,类似于单选按钮:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:icon="@drawable/..."
android:title="@string/..."
app:showAsAction="always">
<menu>
<group
android:id="@+id/..."
android:checkableBehavior="single">
<item .../>
<item .../>
<item .../>
</group>
</menu>
</item>
</menu>
Run Code Online (Sandbox Code Playgroud)
我需要在这个项目列表下面放一个项目,它将在它和列表之间有一个分隔符.与材料设计指南显示的相似(取自此处):
编辑:这是我想要做的草图:
我找不到办法去做.
我发现的唯一可行解决方案是:
更改活动的主题(此处),但这也会影响活动的其他菜单项
菜单项出现在操作栏上时在菜单项之间放置分隔符的方法,但此处它们不会出现在工具栏本身上.它们出现在所选项目的弹出菜单上.
我试图在列表和额外项目之间放置假物品,我也尝试放置一个组,一个空组,甚至尝试了各种属性.
可悲的是没有用.
如何在动作项目的弹出菜单的特定项目之间添加分隔符?
也许我需要在单击操作项时创建自定义弹出菜单(如此处)?如果是这样,我如何在特定项目之间放置分隔符?也许使用Spinner作为动作项目?
我的菜单项变得更大,所以我想将它们分组并制作一个分隔线来分隔每个组.我现在应该怎么做 ?
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<!--group1-->
<item
android:id="@+id/action_addtag"
android:title="@string/add_hashtag_string"
app:showAsAction="never" />
<item
android:id="@+id/action_block_list"
android:title="Block"
app:showAsAction="never" />
<item
android:id="@+id/action_report_list"
android:title="Report"
app:showAsAction="never" />
<!--group2-->
<item
android:id="@+id/terms"
android:title="Terms"
app:showAsAction="never" />
<item
android:id="@+id/feedback"
android:title="FeedBack"
app:showAsAction="never" />
<!--group3-->
<item
android:id="@+id/action_setting"
android:title="Setting"
app:showAsAction="never" />
</menu>
Run Code Online (Sandbox Code Playgroud) 我想减少导航抽屉中每个菜单组之间的空间(在下图中,两行之间的空格).
我创建了一个自定义样式并尝试了以下属性
<item name="android:paddingTop">0dp</item>
<item name="android:paddingBottom">0dp</item>
Run Code Online (Sandbox Code Playgroud)
他们只减少了项目文本周围的填充.
甚至以下属性也没有奏效
<item name="android:layout_marginTop">0dp</item>
<item name="android:layout_marginBottom">0dp</item>
Run Code Online (Sandbox Code Playgroud) 我一直在关注最新的(?)如何实现物料设计抽屉式导航教程并肩与我这篇文章。
它使用菜单资源 (xml),而不是填充列表视图。非常整洁和容易,但是..
我不知道如何在菜单项之间添加分隔线。来自 Material Design 规范的图片:

菜单文件
<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>
Run Code Online (Sandbox Code Playgroud)
我试过按组划分,但它没有给我任何分隔符。当我添加一个子菜单时,我得到了一个分隔符和一个不需要的标题。
像这样:
<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>
Run Code Online (Sandbox Code Playgroud)

我想要分隔符,而不是标题。提前致谢,感谢您的帮助!