bottomNavigationView.setOnNavigationItemSelectedListener(
new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.action_favorites:
//need change icon of favotites here.
case R.id.action_schedules:
case R.id.action_music:
}
return true;
}
});
Ich möchte das Symbol der unteren Navigation der ausgewählten Position ändern. Wie können wir diese Funktion erreichen, wenn der Benutzer auf ein Element klickt?
(Wenn der Benutzer auf ein Element geklickt hat, wechselt das Symbol zu einem anderen)
Jeder, der Selektoren in seinem Menü hat und die Farben der Selektoren anstelle der Standardfarben der unteren Navigationsleiste anzeigen möchte, überprüft diese Antwort stackoverflow.com/a/44516194/6039240
– Amr
13. Januar um 7:03 Uhr
kuljeet singh
Sie können einfach einen Drawable-Selektor im Drawable-Ordner erstellen und das Bild kann entsprechend dem Status des in der Ansicht verwendeten Widgets geändert werden
Das funktioniert besser als die programmatische Methode. Der Zustand ist eigentlich anzugeben android:state_checked nicht android:state_selected
– Yuntao
27. April 2017 um 21:19 Uhr
Hier sollten Sie sich bewerben: <android.support.design.widget.NavigationView . . app:itemTextColor="@drawable/your_selector"/>
– sfmirtalebi
11. Mai 2018 um 18:10 Uhr
Es funktioniert nicht in der Kitkat-Android-Version. App stürzt ab.
– Hitesh Sarsava
9. Juni 2018 um 18:01 Uhr
@ASN entfernt den Farbton aus dem unteren Navigations-XML-Code, um die ursprüngliche Farbe der Symbole wiederherzustellen
– Abhinav Upadhyay
27. Oktober 2018 um 14:13 Uhr
@AbhinavUpadhyay Das Entfernen von itemIconTint aus XML funktioniert immer noch nicht. bottomNavigationView.setItemIconTintList(null) ist die Lösung. Kennen Sie das Äquivalent in XML?
– VipiN Negi
5. März 2019 um 10:51 Uhr
Funktioniert gut Thnx.
– Shanmugapriyan M
20. Dezember 2017 um 6:12 Uhr
Danke, Ihre Antwort hat mir geholfen, das Originalsymbol anstelle des farbigen Rechtecks anzuzeigen.
– Chirag Jain
22. September 2018 um 10:31 Uhr
Dies ist die Antwort auf alle oben genannten Probleme. Wenn Sie die Hintergrundauswahl festlegen, wird sie ohne diese niemals funktionieren, danke
– Odaym
5. Oktober 2018 um 14:00 Uhr
Es funktioniert gut. Vergessen Sie nicht, einen Selektor mit Drawables zu erstellen und ihn in der Menüdatei zu verwenden
– Djek-Grif
11. Oktober 2018 um 11:06 Uhr
Es hat funktioniert, aber ich bin neugierig, das Äquivalent für das XML-Layout-Attribut zu finden. “@null” hat bei mir nicht funktioniert.
– VipiN Negi
5. März 2019 um 10:00 Uhr
Mit dieser Methode können Sie Ihr Symbol dynamisch festlegen.
R.id.navigation_menu ist Ihre Artikel-ID in Ihrer R.menu.menu_bottom_navigation.
val menuItem = bottomNavigationView.menu.findItem(R.id.navigation_menu)
menuItem.setIcon(R.drawable.ic_icon)
Henrique Cesar Madeira
Sie müssen das Symbol beim Klicken zurücksetzen, und dann müssen Sie auf dem Schaltergehäuse nur das einstellen, das Sie ändern müssen, sodass sich das Symbol nur ändert, wenn es ausgewählt ist.
Menu menu = bottomNavigationView.getMenu();
menu.findItem(R.id.action_favorites).setIcon(favDrawable);
switch (item.getItemId()) {
case R.id.action_favorites:
item.setIcon(favDrawableSelected);
case R.id.action_schedules:
case R.id.action_music:
}
Subind Suresh
Die obige Antwort von Ajay Singh https://stackoverflow.com/a/57248961/9793057 hat mir geholfen, ebenso wie die Antworten von oben.
Der folgende Code im res->drawable Ordner (selector_stock_bottom_nav_view.xml)
Dies sind die Attribute in meiner unteren Navigationsansicht
<com.google.android.material.bottomnavigation.BottomNavigationView
app:itemIconTint="@drawable/selector_stock_bottom_nav_view" //To change icon color
app:itemTextColor="@drawable/selector_stock_bottom_nav_view" //To change text color
app:itemTextAppearanceActive="@style/stockBottomNavigationView.Active" //To change size of text during active state
app:itemTextAppearanceInactive="@style/stockBottomNavigationView.InActive"
app:menu="@menu/bottom_navigation_menu"
app:labelVisibilityMode="labeled"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:layout_gravity="bottom"
app:selectedBackgroundVisible="false"
android:id="@+id/stock_bottom_navigation"/>
Ich habe “BottomNavigationView.setItemIconTintList(null)” NICHT irgendwo in meinem Code verwendet.
Jetzt Hier kommt das wichtigste Stück Codestellen Sie sicher, dass im Listener der unteren Navigationsansicht “TRUE” zurückgegeben wird, d. h.
private BottomNavigationView.OnNavigationItemSelectedListener stockBottomNavListener = new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
return true;
}
};
Bonus: Um die Größe des aktiven/inaktiven Textstatus zu ändern, fügen Sie den folgenden Code in die Datei styles.xml ein
Die obige Antwort ist eine Zusammenstellung von Antworten aus verschiedenen Antworten in Stackoverflow in Bezug auf untere Navigationsansichten, Änderung der Symbol- und Textfarbe/-größe.
Tolle Arbeit, ein +1 für mich. Dies ergänzt die ursprüngliche Frage, die mit noch mehr Flair gestellt wurde.
– A. Petrizza
22. Mai 2021 um 4:20 Uhr
10105900cookie-checkAndroid: Untere Navigationsansicht – Ändern Sie das Symbol des ausgewählten Elementsyes
Jeder, der Selektoren in seinem Menü hat und die Farben der Selektoren anstelle der Standardfarben der unteren Navigationsleiste anzeigen möchte, überprüft diese Antwort stackoverflow.com/a/44516194/6039240
– Amr
13. Januar um 7:03 Uhr