2015-07-03 9 views
9

Witam Mam NavigationView i jest tam widok w widoku nagłówkowym tego NavigationView. Po kliknięciu widoku obrazu NavigationView powinien nadmuchać inny plik zasobów menu i zastąpić bieżące menu, tak jak w aplikacji PlayStore.Jak dynamicznie nadpisywać nawigację Android w innym menu podczas onClick?

Próbowałem to:

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

ale po kliknięciu na przycisku nic się nie dzieje! (Log Onclick jest wyświetlany w logcat) Jak mogę to zrobić?

Odpowiedz

18

spróbować następujący kod

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

Udało się! Dzięki! Teraz dałeś mi rozwiązanie 2 razy z rzędu! :) –

+0

o tak, pamiętam ... pierwszy jest w menuitem kolor tekstu ... lolz – Moinkhan

8

Proponuję nadmuchać tylko jedno menu z kilkoma grupami i zmienić widoczność grup. Prosty i skuteczny.

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

W swojej java wywołania kodu

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

Ten pracował dla sytuacji! +1 głos! Akceptacja odpowiedzi @moinkhana za udostępnienie rozwiązania do dynamicznego nadmuchiwania innego menu. :) –

Powiązane problemy