2016-06-11 95 views
3

我为我的应用程序使用了可以在android studio中添加的导航抽屉,并且向Nav-drawer添加了一些菜单条目(请参阅代码块)。如果我按第一项(nav_home)或第二项,则导航抽屉会突出显示当前按下的项目。导航抽屉如何突出显示所选项目

如果我按项目“nav_information”按钮或其他项目,新的(点击)片段运行结束并没有高亮可见(家庭或第二项仍然高亮显示)

不久,只有第一项显示选定项目的突出显示。

<?xml version="1.0" encoding="utf-8"?> 
<group android:checkableBehavior="single"> 
    <item 
     android:id="@+id/nav_home" 
     android:icon="@drawable/ic_home_black" 
     android:title="Startseite" /> 

    <item android:id="@+id/nav_greetings" 
     android:title="Grußwort"/> 
    </group> 

<group android:checkableBehavior="single"> 
    <item android:title="Neuigkeiten"> 
    <menu > 

     <item 
      android:id="@+id/nav_information" 
      android:icon="@drawable/ic_info_black" 
      android:title="@string/title_activity_aktuelles" /> 

    </menu> 
    </item> 
</group> 
.... 

这是我如何处理碎片的打开方式。

@SuppressWarnings("StatementWithEmptyBody") 
@Override 
public boolean onNavigationItemSelected(MenuItem item) { 
    // Handle navigation view item clicks here. 
    int id = item.getItemId(); 

    Fragment myFragment = null; 

    if (id == R.id.nav_home) { 
      drawer.setSelected(true); 
     myFragment = new MainScreen(); 
    }else if (id == R.id.nav_greetings){ 
     myFragment = new Greetings(); 
    } else if (id == R.id.nav_information) { 
     myFragment = new Aktuelles(); 
    } else if (id == R.id.nav_directions) { 
     myFragment = new Anfahrt(); 
    } else if (id == R.id.nav_basilika) { 
     myFragment = new Rundabout(); 
    } else if (id == R.id.nav_download) { 
     myFragment = new Downloads(); 
    } else if (id == R.id.nav_history) { 
     myFragment = new History(); 
    }else if(id == R.id.nav_hauptwallfahrt){ 
     myFragment = new Hauptwallfahrt(); 
    }else if (id == R.id.nav_themenwallfahrt){ 
     myFragment = new Themenwallfahrt(); 
    }else if (id == R.id.nav_pilgergruppen){ 
     myFragment = new Pilgergruppen(); 
    }else if (id ==R.id.nav_wallfahrtgodi){ 
     myFragment = new Wallfahrtsgottesdienste(); 
    } 


    FragmentManager fragmentManager = getSupportFragmentManager(); 

    FragmentTransaction ft = fragmentManager.beginTransaction(); 

    // Replace the requestet Fragment 
    ft.replace(R.id.container, myFragment) ; 
    ft.commit(); 

    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
    drawer.closeDrawer(GravityCompat.START); 
    return true; 
} 

有没有办法“启用”突出显示?

在此先感谢!

回答

4

你只需要改变标签

我在最后一组尝试的顺序,但它的工作原理,检查PLS

<item android:title="Neuigkeiten"> 
    <menu > 
     <group android:checkableBehavior="single"> 
      <item 
      android:id="@+id/nav_information" 
      android:icon="@drawable/ic_info_black" 
      android:title="@string/title_activity_aktuelles" /> 

    </group> 
</menu> 

+1

这不工作了 – Denny

+0

这为我工作 –

0

</group> 
<item android:title="Neuigkeiten"> 
    <menu> 
     <group android:checkableBehavior="single"> 
      <item 
       android:id="@+id/nav_lang" 
       android:icon="@drawable/lang_blue" 
       android:title="@string/language" /> 
      <item 
       android:id="@+id/nav_invite" 
       android:icon="@drawable/call_friend_blue" 
       android:title="@string/invite_friend" /> 
      <item 
       android:id="@+id/nav_about" 
       android:icon="@drawable/about_us_blue" 
       android:title="@string/about_health_in_touch" /> 
     </group> 
    </menu> 
</item> 

0

是做这样:

<?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/home_blue" 
      android:title="@string/home" /> 
     <item 
      android:id="@+id/nav_search" 
      android:icon="@drawable/search_icon" 
      android:title="@string/search" /> 

    </group> 
    <item android:title="Neuigkeiten"> 
     <menu> 
      <group android:checkableBehavior="single"> 
       <item 
        android:id="@+id/nav_lang" 
        android:icon="@drawable/lang_blue" 
        android:title="@string/language" /> 
       <item 
        android:id="@+id/nav_invite" 
        android:icon="@drawable/call_friend_blue" 
        android:title="@string/invite_friend" /> 
       <item 
        android:id="@+id/nav_about" 
        android:icon="@drawable/about_us_blue" 
        android:title="@string/about_health_in_touch" /> 
      </group> 
     </menu> 
    </item> 
</menu>