Android支持:设计NavigationView选中的菜单子项

前端之家收集整理的这篇文章主要介绍了Android支持:设计NavigationView选中的菜单子项前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我最近开始转换我的 Android应用程序以使用名为support:design的最新支持库.

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

我的navdrawer_menu.xml

  1. <menu xmlns:android="http://schemas.android.com/apk/res/android">
  2. <group android:checkableBehavior="single">
  3. <item
  4. android:id="@+id/navigation_item_home"
  5. android:icon="@drawable/ic_home_black"
  6. android:title="@string/navdrawer_item_home" />
  7. </group>
  8.  
  9. <item
  10. android:id="@+id/navigation_subheader"
  11. android:title="@string/navdrawer_subheader_title1">
  12. <menu>
  13. <group android:checkableBehavior="single">
  14. <item
  15. android:id="@+id/navigation_sub_item1"
  16. android:icon="@drawable/ic_home_black"
  17. android:title="@string/navdrawer_sub_item1" />
  18. </group>
  19. </menu>
  20. </item>
  21. </menu>

接下来,我将菜单项设置为onNavigationItemSelected:

  1. @Override
  2. public boolean onNavigationItemSelected(final MenuItem menuItem) {
  3.  
  4. menuItem.setChecked(true);
  5.  
  6. drawerLayout.closeDrawer(GravityCompat.START);
  7. mDrawerActionHandler.postDelayed(new Runnable() {
  8. @Override
  9. public void run() {
  10. displayView(menuItem.getItemId());
  11. }
  12. },DRAWER_CLOSE_DELAY_MS);
  13. return true;
  14. }

如果我只在标签之间使用普通菜单项,但这对于子标题不起作用,那么这种方法很有用.点击子项目不会设置它们检查,直到我点击相同的项目两次,它不会取消选中之前检查的任何项目.

最终看起来像这样:

解决方法

每个项目都必须在一个组内,因此该组可以控制该项目在用户选择时的视觉行为.试试吧:
  1. <menu xmlns:android="http://schemas.android.com/apk/res/android">
  2. <group android:checkableBehavior="single">
  3. <item
  4. android:id="@+id/navigation_item_home"
  5. android:icon="@drawable/ic_home_black"
  6. android:title="@string/navdrawer_item_home" />
  7. <item
  8. android:id="@+id/navigation_subheader"
  9. android:title="@string/navdrawer_subheader_title1">
  10. <menu>
  11. <group android:checkableBehavior="single">
  12. <item
  13. android:id="@+id/navigation_sub_item1"
  14. android:icon="@drawable/ic_home_black"
  15. android:title="@string/navdrawer_sub_item1" />
  16. </group>
  17. </menu>
  18. </item>
  19. </group>
  20. </menu>

猜你在找的Android相关文章