2016-01-04 40 views
1

當我單擊不同組(特殊)項目時,遇到將選定項目保留在NavigationDrawer中的問題。導航抽屜不保留所選項目

... 
    <item 
     android:id="@+id/item_notifications" 
     android:icon="@drawable/ic_notifications_black_24dp" 
     android:title="@string/drawer_notification" 
     android:visible="true" /> 
</group> 
<group android:id="@+id/special"> 
    <item 
     android:id="@+id/item_settings" 
     android:icon="@drawable/ic_settings_48dp" 
     android:title="@string/drawer_settings" /> 
    <item 
     android:id="@+id/item_feedback" 
     android:icon="@drawable/ic_chat_bubble_black_24dp" 
     android:title="@string/drawer_feedback" /> 

    <item 
     android:id="@+id/item_logout" 
     android:icon="@drawable/ic_arrow_back_black_24dp" 
     android:title="@string/drawer_logout" /> 

</group> 

下面是我的MainActivity開關罩:

@Override public boolean onNavigationItemSelected(MenuItem menuItem) { 
menuItem.setChecked(true); 

switch (menuItem.getItemId()) { 
case R.id.item_notifications: 
    mCurrentSelectedPosition = 6; 
    getSupportFragmentManager().beginTransaction() 
     .replace(R.id.container, BaseFragment.newInstance("Notifications")) 
     .commit(); 
    mDrawerLayout.closeDrawers(); 
    return true; 

    case R.id.item_settings: 
    mCurrentSelectedPosition = 7; 
    mDrawerLayout.closeDrawers(); 
    Snackbar.make(findViewById(R.id.container), "Settings", Snackbar.LENGTH_SHORT).show(); 
    return true; 

    case R.id.item_feedback: 
    mCurrentSelectedPosition = 8; 
    mDrawerLayout.closeDrawers(); 
    getSupportFragmentManager().beginTransaction() 
      .replace(R.id.container, FeedbackFragment.getInstance()) 
      .commit(); 
    return true; 

    case R.id.item_logout: 
    mDrawerLayout.closeDrawers(); 
    session.logoutUser(MainActivity.this); 
    return true; 
    } 
} 

我看不出有什麼毛病我的代碼。只是當我點擊抽屜中的另一個組時,navigationDrawer不會保留我選擇的項目。

+1

在組標籤中嘗試使用android:checkableBehavior =「single」。 – Harry

+0

哦,我明白了。感謝@哈里它的工作。 – Menardo

+0

哦,問題是抽屜裏的不同組有兩個選定的項目是錯誤的,對吧?只能有一個。 – Menardo

回答

1

您需要在菜單組中加入這一行:

機器人:checkableBehavior = 「單」

這將有助於你保持選中狀態。

<group android:id="@+id/special" 
     android:checkableBehavior="single"> 
    <item 
     android:id="@+id/item_settings" 
     android:icon="@drawable/ic_settings_48dp" 
     android:title="@string/drawer_settings" /> 
    <item 
     android:id="@+id/item_feedback" 
     android:icon="@drawable/ic_chat_bubble_black_24dp" 
     android:title="@string/drawer_feedback" /> 

    <item 
     android:id="@+id/item_logout" 
     android:icon="@drawable/ic_arrow_back_black_24dp" 
     android:title="@string/drawer_logout" /> 

</group> 

檢查這個official blog post更多的參考...

希望這將有助於。

+0

好的。非常感謝哈利 – Menardo