2015-07-03 6 views
9

Hallo Ich habe eine NavigationView und es gibt eine Bildansicht in der Kopfzeile dieser NavigationView. Wenn ich auf die Bildansicht klicke, sollte NavigationView eine andere Menü-Ressource-Datei aufblasen und das aktuelle Menü wie in der PlayStore App ersetzen.Wie man Android NavigationView mit einem anderen Menü während onClick dynamisch aufblasen?

Ich habe dies versucht:

imgIndic.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View view) { 
     Log.e("Onclick","Arrow click"); 
     navigationView.inflateMenu(R.menu.second_menu); 
    } 
}); 

Aber wenn ich auf den Button klicken, passiert nichts! (Log Onclick wird im Logcat angezeigt) Wie kann ich das tun?

Antwort

18

versuchen, den folgenden Code

imgIndic.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View view) {  
     navView.getMenu().clear(); 
     navView.inflateMenu(R.menu.second_menu); 
    } 
}); 
+1

Es hat funktioniert! Vielen Dank! Jetzt hast du mir 2 mal hintereinander eine Lösung gegeben! :) –

+0

oh ja, ich erinnere mich .. der erste ist auf menueitem text farbe ... lolz – Moinkhan

8

Ich würde vorschlagen, nur ein Menü mit mehreren Gruppen aufzublasen und die Sichtbarkeit der Gruppen zu ändern. Einfach und effektiv.

<group 
    android:id="@+id/group_1" 
    android:checkableBehavior="single" 
    android:visible="false"> 
    ... 
</group> 

<group 
    android:id="@+id/group_2" 
    android:checkableBehavior="single" 
    android:visible="true"> 
    ... 
</group> 

In Ihrem Java-Code Anruf

navigationView.getMenu().setGroupVisible(R.id.group_1, true) 
+0

Dieses ist für die Situation hat funktioniert! +1 Stimme! Akzeptieren von @moinkhans Antwort, um eine Lösung zum dynamischen Aufblasen eines anderen Menüs zu geben. :) –

Verwandte Themen