1

Zur Zeit habe ich eine Implementierung wie this-Kann ich die Verschiebung in einem bestimmten BottomNavigationView-Element in einer bestimmten Logik deaktivieren?

mBottomNav.setOnNavigationItemSelectedListener(
       ...... 
    switch (item.getItemId()) { 

     case R.id.actionUser: 
      if(userLoggedIn) { 
       mHomePresenter.btnUser(); 
      } 
      else { 
       showLongToast("User Not Logged In"); 
      } 
      break; 
    }); 

Die logische sonst Teil, wo ich die Toast Meldung wird, weder ich möchte, dass die BottomNavigationView noch die Änderung der Menüsymbol Farbe zu verschieben.

Wie kann ich eine solche Logik nur für diesen spezifischen Teil implementieren? Alle anderen Menüpunkte behalten die Standardverschiebungslogik bei.

+0

Hallo Fatima sehen Können Sie uns bitte weitere Informationen geben? Es ist nicht klar. Es wäre toll, wenn Sie ein laufendes Beispiel bereitstellen könnten. –

+0

Ich habe schon eine Lösung. Siehe unten die angenommene Antwort. Dank für Ihr Interesse! @ShravanJain – Farwa

+0

Super Yrr .... :) –

Antwort

1

Nun ist die Antwort ganz einfach, für die Bedingung, die Sie den Übergang passieren soll, kehren true für den Zustand, wo Sie wollen false

Taking Code Rechnung zurückgeben nicht, sollte es

mBottomNav.setOnNavigationItemSelectedListener(
    @Override 
    public boolean onNavigationItemSelected(@NonNull MenuItem item) { 
     switch (item.getItemId()) { 
     case R.id.actionUser: 
      if(userLoggedIn) { 
       mHomePresenter.btnUser(); 
       return true; 
      } 
      else { 
       showLongToast("User Not Logged In"); 
       return false; 
      } 
     } 
    }); 
sein

, wenn Sie in der Dokumentation zur Navigation Auswahl Hörer überprüfen, können Sie

/** 
* Listener for handling selection events on bottom navigation items. 
*/ 
public interface OnNavigationItemSelectedListener { 

    /** 
    * Called when an item in the bottom navigation menu is selected. 
    * 
    * @param item The selected item 
    * 
    * @return true to display the item as the selected item and false if the item should not 
    *   be selected. Consider setting non-selectable items as disabled preemptively to 
    *   make them appear non-interactive. 
    */ 
    boolean onNavigationItemSelected(@NonNull MenuItem item); 
} 
+0

Wunderbar! Es funktionierte! Ich bin ein Anfänger. Diese wechselnde Helferklasse kochte mir den Kopf! Danke, dass Sie auf diese einfachste Lösung hingewiesen haben! – Farwa

+1

Froh, dass es funktioniert :) :) @FatimaMostafa Happy Coding. – Sanoop

Verwandte Themen