menu - Android支持:design NavigationView checked menu sub items

标签 menu navigation menuitem submenu

我最近开始将自己的Android应用程序转换为使用名为support:design的最新支持库。

在实现新的NavigationView时,我偶然发现了显示所选菜单项的问题。

我的navdrawer_menu.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
    <item
        android:id="@+id/navigation_item_home"
        android:icon="@drawable/ic_home_black"
        android:title="@string/navdrawer_item_home" />
</group>

    <item
        android:id="@+id/navigation_subheader"
        android:title="@string/navdrawer_subheader_title1">
        <menu>
            <group android:checkableBehavior="single">
            <item
                android:id="@+id/navigation_sub_item1"
                android:icon="@drawable/ic_home_black"
                android:title="@string/navdrawer_sub_item1" />
            </group>
        </menu>
    </item>
</menu>

接下来,我将菜单项设置为在我的onNavigationItemSelected中选中:
@Override
public boolean onNavigationItemSelected(final MenuItem menuItem) {

    menuItem.setChecked(true);

    drawerLayout.closeDrawer(GravityCompat.START);
    mDrawerActionHandler.postDelayed(new Runnable() {
        @Override
        public void run() {
            displayView(menuItem.getItemId());
        }
    }, DRAWER_CLOSE_DELAY_MS);
    return true;
}

如果仅在标签之间使用常规菜单项,则此方法效果很好,但对子标题却效果不佳。单击子项不会将它们设置为选中状态,直到我单击相同的项目两次,并且不会取消选中之前选中的任何项。

最终看起来像这样:

enter image description here

最佳答案

每个项目都必须在一个组内,以便该组可以根据用户选择来控制该项目的视觉行为。试试吧:

<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
    <item
        android:id="@+id/navigation_item_home"
        android:icon="@drawable/ic_home_black"
        android:title="@string/navdrawer_item_home" />
    <item
        android:id="@+id/navigation_subheader"
        android:title="@string/navdrawer_subheader_title1">
        <menu>
            <group android:checkableBehavior="single">
            <item
                android:id="@+id/navigation_sub_item1"
                android:icon="@drawable/ic_home_black"
                android:title="@string/navdrawer_sub_item1" />
            </group>
        </menu>
    </item>
</group>
</menu>

关于menu - Android支持:design NavigationView checked menu sub items,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30779679/

相关文章:

c# - 将 TabControl.Items 绑定(bind)到 MenuItem

android - 菜单项不可见

c# - 从 View 访问用户权限的最佳方式

c++ - CMFCCaptionMenuButton 替代品?

javascript - github UI 如何在没有回传的情况下导航目录?

css - 为什么 Percent-Padded CSS 列表项在点击时改变宽度?

jsf - 目标 ="_blank"在 p :menuitem doesn't open new tab

php - Drupal 7 双行菜单

javascript - jQuery 下拉菜单-当用户单击内部 ul 之外的任何地方时隐藏内部 ul

java - 缩放导航网站,不让悬停在背景部分工作