OK、動作または私の NavigationView が機能します。設定をクリックすると、そこに移動します。最初のアイテムをクリックすると、本来の動作をします。2 番目の項目をクリックすると、本来の動作が行われます。
ただし、私の問題は選択状態にあります。項目をクリックしても選択されません。機能する唯一の選択は、私の設定メニューです。そのアイテムをクリックすると、以前にクリックしたすべてのアイテムとともに、設定メニューが選択されます。
シナリオ
アプリの読み込み時
- NavigationView に移動 (A、B、設定)
- アイテムをクリック
- アプリが適切な場所に移動します (何も選択されていません)
- ナビゲーションビューに移動
- 設定をクリックします
- アプリが設定アクティビティに移動します (設定メニューと A メニューが選択されています)
アプリの読み込み時
- NavigationView に移動 (A、B、設定)
- アイテムをクリック
- アプリが適切な場所に移動します (何も選択されていません)
- ナビゲーションビューに移動
- Bアイテムをクリック
- アプリが適切な場所に移動します (何も選択されていません)
- ナビゲーションビューに移動
- 設定をクリックします
- アプリが設定アクティビティに移動します (設定メニューと A、B メニューが選択されています)
アプリの読み込み時
- NavigationView に移動 (A、B、設定)
- 設定をクリックします
- アプリが設定アクティビティに移動します (設定メニューが選択されています)
アプリの読み込み時
- NavigationView に移動 (A、B、設定)
- 設定をクリックします
- アプリが設定アクティビティに移動します (設定メニューが選択されています)
- ナビゲーションビューに移動
- Bアイテムをクリック
- アプリが適切な場所に移動します (設定が選択されています)
- ナビゲーションビューに移動
- 設定をクリックします
- アプリが設定アクティビティに移動します (設定メニューと B メニューが選択されています)
アプリの読み込み時
- 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;
}