2

好的,行为或我的 NavigationView 有效。我点击设置,它把我带到那里。我点击我的第一个项目,它做了它应该做的。我点击第二个项目,它做了它应该做的事情。

但是,我的问题是选择状态。我将单击一个项目,它不会选择它。唯一有效的选择是我的设置菜单。当我单击该项目时,将选择设置菜单以及我之前单击的所有项目。

场景

  1. 应用加载时

    • 转到 NavigationView(A、B、设置)
    • 点击一个项目
    • 应用导航到正确的位置(未选择任何内容)
    • 转到导航视图
    • 点击设置
    • 应用导航到设置活动(设置菜单和 A 菜单被选中)
  2. 应用加载时

    • 转到 NavigationView(A、B、设置)
    • 点击一个项目
    • 应用导航到正确的位置(未选择任何内容)
    • 转到导航视图
    • 点击B项目
    • 应用导航到正确的位置(未选择任何内容)
    • 转到导航视图
    • 点击设置
    • 应用导航到设置活动(设置菜单和 A、B 菜单被选中)
  3. 应用加载时

    • 转到 NavigationView(A、B、设置)
    • 点击设置
    • 应用导航到设置活动(选择设置菜单)
  4. 应用加载时

    • 转到 NavigationView(A、B、设置)
    • 点击设置
    • 应用导航到设置活动(选择设置菜单)
    • 转到导航视图
    • 点击B项目
    • 应用导航到正确的位置(选择设置)
    • 转到导航视图
    • 点击设置
    • 应用导航到设置活动(设置菜单和 B 菜单被选中)
  5. 应用加载时

    • 转到 NavigationView(A、B、设置)
    • 点击一个项目
    • 应用导航到正确的位置(未选择任何内容)
    • 转到导航视图
    • 点击一个项目
    • 应用导航到正确的位置(选择 A)

代码

navigation.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">


    <item
        android:id="@+id/movie_heading"
        android:title="Movies"
        android:enabled="false">

        <menu
            android:id="@+id/navigationGroupMovies"
            android:checkableBehavior="single">

            <item
                android:id="@+id/navigationOnline"
                android:icon="@drawable/ic_movie_creation_white_24dp"
                android:title="Find Online"
                android:checkable="true"/>

            <item
                android:id="@+id/navigationMyCollection"
                android:icon="@drawable/abc_btn_rating_star_on_mtrl_alpha"
                android:title="My Collections"
                android:checkable="true"/>

        </menu>

    </item>

    <group
        android:id="@+id/navigationGroupSetting"
        android:checkableBehavior="single">

        <item
            android:id="@+id/navigationSetting"
            android:icon="@drawable/ic_settings_white_24dp"
            android:title="Settings" />

    </group>

</menu>

state_navigation_text.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_checked="true"
          android:color="@color/accent"  />

    <item android:state_focused="true"
          android:color="@color/primary"/>

    <item android:color="@color/primary_dark" />

</selector>

单击导航项时

@Override
public boolean onNavigationItemSelected(MenuItem item) {

    item.setChecked(true);

    switch (item.getItemId()) {

        case R.id.navigationSetting:

            startActivity(new Intent(this, SettingsActivity.class));
            break;

        case R.id.navigationOnline:         setCurrentTabs(API.WEB_GROUP); break;
        case R.id.navigationMyCollection:   setCurrentTabs(API.OFFLINE_GROUP); break;

        default: // Do nothing

    }

    closeDrawer();

    return true;

}
4

0 回答 0