2016-06-11 21 views
3

Ich benutze für meine Anwendung die Navigationsschublade, die Sie im Android Studio hinzufügen können und ich habe einige Menüeinträge in die Nav-Schublade hinzugefügt (siehe Codeblock). Wenn ich das erste Element (nav_home) oder das zweite Element drücke, markiert das Navigationsfach den aktuell gedrückten Gegenstand.Navigations-Schublade, um das ausgewählte Objekt zu markieren

Wenn ich den Punkt „nav_information“ Taste oder ein anderes Element drücken, das neue (angeklickt) Fragment opend und keine Markierung sichtbar ist (zu Hause oder das zweite Element markiert noch)

Kurz, nur die ersten Artikel zeigt Hervorhebung an ausgewählten Objekten.

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

So behandle ich die Öffnung der Fragmente.

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

Gibt es eine Möglichkeit, die Hervorhebung zu "aktivieren"?

Vielen Dank im Voraus!

Antwort

4

Sie haben die Reihenfolge der Tags

ich mit der letzten Gruppe versucht zu ändern, aber es funktioniert, überprüfen Sie es 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

Dies funktioniert nicht mehr – Denny

+0

Das ist für mich gearbeitet –

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

es auf diese Weise getan wird:

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