2016-06-11 1 views
3

J'utilise pour mon application le tiroir de navigation que vous pouvez ajouter au studio android et j'ai ajouté quelques entrées de menu au tiroir Nav (voir le bloc de code). Si j'appuie sur le premier élément (nav_home) ou sur le second, le tiroir de navigation met en surbrillance l'élément pressé actuel.Tiroir de navigation comment surligner l'élément sélectionné

Si j'appuie sur l'élément bouton « nav_information » ou un autre élément, le nouveau (cliqué) opend fragment et aucune mise en évidence est visible (la maison ou le deuxième élément est encore en surbrillance)

Peu de temps, seuls les premiers éléments montre la mise en évidence sur les éléments sélectionnés.

<?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> 
.... 

C'est ainsi que je gère l'ouverture des fragments.

@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; 
} 

Existe-t-il un moyen d '«activer» la surbrillance?

Merci d'avance!

Répondre

4

vous suffit de changer l'ordre des balises

J'ai essayé avec le dernier groupe, mais il fonctionne, vérifier 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

Cela ne fonctionne pas plus – Denny

+0

Cela a fonctionné pour moi –

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

il est fait de cette façon:

<?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>