Android: Bottom-Navigations-Ansicht - ändern Sie das Symbol des ausgewählten Elements
Habe ich Hinzugefügt BottomNavigationView
in meiner Anwendung wie.
main.xml
<android.support.design.widget.BottomNavigationView
android:id="@+id/bottom_navigation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
app:itemBackground="@color/colorPrimary"
app:itemIconTint="@color/white"
app:itemTextColor="@color/white"
app:menu="@menu/bottom_navigation_main" />
bottom_navigation_main.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_favorites"
android:enabled="true"
android:icon="@drawable/ic_favorite_white_24dp"
android:title="@string/text_favorites"
app:showAsAction="ifRoom" />
<item
android:id="@+id/action_schedules"
android:enabled="true"
android:icon="@drawable/ic_access_time_white_24dp"
android:title="@string/text_schedules"
app:showAsAction="ifRoom" />
<item
android:id="@+id/action_music"
android:enabled="true"
android:icon="@drawable/ic_audiotrack_white_24dp"
android:title="@string/text_music"
app:showAsAction="ifRoom" />
</menu>
MainActivity klicken Sie auf
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;
}
});
Will ich ändern das Symbol der unteren navigation der ausgewählten position. Wie können wir erreichen diese Funktion, wenn Benutzer klicken Sie auf ein Element?
(wenn Benutzer auf ein Element, dann das Symbol ändern, um ein anderes)
InformationsquelleAutor Adarsh | 2017-01-24
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie zurücksetzen müssen Sie das Symbol anklicken, und dann auf den Schalter Fall müssen Sie nur die ein, die Sie ändern müssen, also nur, wenn das Symbol ausgewählt ändern.
Können Sie einfach erstellen drawable-Auswahl im drawable-Ordner und die Bild kann sich ändern, je nach Zustand des widgets verwendet in Sicht
android:state_checked
nichtandroid:state_selected
<android.support.design.widget.NavigationView . . app:itemTextColor="@drawable/your_selector"/>
static { AppCompatDelegate.setCompatVectorFromResourcesEnabled(true); }
Bitte überprüfen Sie die die AntwortWenn die oben genannten Lösungen nicht für Sie arbeiten zu ändern ausgewählte Element-Symbol, dann fügen Sie folgende Zeile, um Ihren code:
Deaktiviert das tint-Effekt des ausgewählten Elements-Symbol.
Ich hatte das gleiche problem. Ich habe drawable-Selektor für sich ändernde Symbol der BottomNavigationView Element, wenn sein markiert/ausgewählt.
Okay ich wollte verstehen, wie jedes Element hat sein eigenes Bild, und einige Verwirrung in den Kommentaren auf, wo sollte es gehen, ich wollte zu geben, diese zu beantworten.
Zuerst erstellen Sie Ihr Menü und Ihre Elemente. Ihre Selektor innen gehen diese Elemente in der SYMBOL Wert. Hier haben wir 2 Auswahlen, die jeweils für dem Menüpunkt.
Nun, hier ist Ihre Selektor-Datei, die sich in Ihrer drawable Ordner.
Letzten Schritt wurde zur Verfügung gestellt von @
KishanSolanki124
Fügen Sie diese Zeile code auf Ihre BottomNavigationView.
Dort haben Sie es. Alles funktioniert wie ein Charme.
BottomNavigationView.SetTextColor
Ich festgestellt, dass dies der bessere Ansatz zu verwenden selector drawable: -
Zuerst erstellen Sie eine xml-Datei in Ihrem drawable-Ordner.
Für die Beispiel-xml-Datei-name child_selector.xml im drawable-Ordner.
Fügen Sie einfach child_selector im Menüpunkt Ihrer bottom_navigation_main.xml:-
Wie: android:icon="@drawable/child_selector"
Beispiel:
Muss und fügen Sie folgende Zeile in Ihrer Tätigkeit
Glück.
Erstellen Sie einen Auswahlbereich und geben Sie drawable für jeden Zustand (z.B. checked und unchecked Staaten)
Fand die Antwort. wir können
um das Symbol zu ändern .. werde versuchen Sie zu imporve Antwort
Danke für die
selector
Methode, die funktioniert für mich (api v26
)Für diejenigen, die sich Fragen, wie Sie zurück zum Ursprung nicht ausgewählte Symbol programmgesteuert, prüfen, fügen Sie diese zu Ihrem
OnNavigationItemSelectedListener
vor Ihrerswitch(Java)
oderwhen(Kotlin)
: