0

在我的应用程序中,我有一个滑动菜单。Android滑动菜单选项无法选择

我activity.xml看起来像这样:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/drawer_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    tools:openDrawer="start"> 
    <include 
     layout="@layout/app_bar_main" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 
    <android.support.design.widget.NavigationView 
     android:id="@+id/nav_view" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_gravity="start" 
     android:fitsSystemWindows="true" 
     app:headerLayout="@layout/nav_header_main" 
     app:menu="@menu/sliding_menu_options" /> 
</android.support.v4.widget.DrawerLayout> 

的sliding_menu_options.xml看起来像这样:

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

    <group android:checkableBehavior="single"> 
     <item 
      android:id="@+id/nav_home" 
      android:icon="@drawable/ic_home_black" 
      android:title="@string/home"/> 
     <item 
      android:id="@+id/nav_recently" 
      android:icon="@drawable/ic_file_upload" 
      android:title="@string/recent"/> 
    </group> 

    <group 
     android:checkableBehavior="single"> 
     <item 
      android:id="@+id/otherItem" 
      android:title="Other"> 
      <menu> 
       <item 
        android:id="@+id/nav_about_us" 
        android:icon="@drawable/ic_info_black" 
        android:title="@string/about"/> 
       <item 
        android:id="@+id/nav_licences" 
        android:icon="@drawable/ic_description_black" 
        android:title="@string/licences"/> 
      </menu> 
     </item> 
    </group> 
</menu> 

此图为我用我的slidin菜单教程和这两个团体应该如何大致看起来像。 Other应该像在标题或描述为第二组:

enter image description here

当用户选择的四个选项中的一个,我想作为托运标记的滑动菜单的选项。对于前两个选项时,它正常工作与这段代码:

navigationView = (NavigationView) findViewById(R.id.nav_view); 
navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() { 

      // This method will trigger on item Click of navigation menu 
      @Override 
      public boolean onNavigationItemSelected(MenuItem menuItem) { 

       navigationView.getMenu().findItem(menuItem.getItemId()).setChecked(true); 

       return true; 
      } 
     }); 

Unfortuantely菜单withing NavigationView只包含两个项目(nav_homenav_recently),而不是全部四个。所以它不适用于nav_about_usnav_licences将它们标记为已检查。

如何在仍有两组时检查另外两个选项?

回答

1

看起来ike在sliding_menu_options.xml有问题,请尝试下面的修改后的代码。

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

    <group android:checkableBehavior="single"> 
     <item 
      android:id="@+id/nav_home" 
      android:icon="@drawable/ic_home_black" 
      android:title="@string/home"/> 
     <item 
      android:id="@+id/nav_recently" 
      android:icon="@drawable/ic_file_upload" 
      android:title="@string/recent"/> 
    </group> 

<item 
      android:id="@+id/otherItem" 
      android:title="Other"> 
</item> 

    <group 
     android:checkableBehavior="single"> 

       <item 
        android:id="@+id/nav_about_us" 
        android:icon="@drawable/ic_info_black" 
        android:title="@string/about"/> 
       <item 
        android:id="@+id/nav_licences" 
        android:icon="@drawable/ic_description_black" 
        android:title="@string/licences"/> 


    </group> 
</menu> 
+0

其他项目应该是类似下一组的“标题”。我在 – joshi737

+0

之上添加了屏幕截图要将其他项目显示为“标题”,您可以在onCreateOptionsMenu()方法内更改其他项目的文本颜色。 –

+0

但其他将可点击 – joshi737