2016-01-04 84 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