Cambia la voce di navigazione Visualizza l'elemento Colore Dynamic Android

Vorrei build un cassetto di navigazione in cui each elemento ha un colore di selezione diverso (il colore dell'icona e il colore del text) come l'archivio Google Play ha:

immettere qui la descrizione dell'immagine

  • Android BottomSheet: sta riavvolgendo sotto la barra degli strumenti
  • NoClassDefFoundError: android.support.design.internal.NavigationMenu su Android 4.2.2 (wiko)
  • Android: Viewpager all'interno di un frammento di cassetto di navigazione
  • Supporto per il supporto Android TabLayout sovrapposizione contenuto
  • Passare l'evento di scorrimento a un'altra visualizzazione
  • Come mettere le viste di tabulazione di scorrimento all'interno di un'opzione del cassetto di navigazione
  • Non sono sicuro di come hanno risolto questo problema, penso che utilizzino attività diverse con cassetti diversi. Voglio usare frammenti e voglio cambiare la tonalità dell'icona e il colore del text. Qualche idea su come posso fare questo? Sto utilizzando la biblioteca di supporto di design di Google e un layout del cassetto con una visualizzazione di navigazione in esso.

  • Ottenere eccezioni: java.lang.NoClassDefFoundError: android.support.v7.app.AppCompatDelegateImplV14
  • Rimuovi le etichette BottomNavigationView
  • Libreria di progettazione Android CoordinatorLayout, AppBarLayout e DrawerLayout
  • Pulsante azione galleggiante non mostrando completamente all'interno di un frammento
  • Errore di gonfiaggio della class android.support.design.widget.NavigationView
  • Il colore del text di azione Snackbar non cambia
  • 4 Solutions collect form web for “Cambia la voce di navigazione Visualizza l'elemento Colore Dynamic Android”

    utilizzare l' app:itemIconTint nel tuo NavigationView per le icone e utilizzare l' app:itemTextColor per textColors

    Esempio:

    drawable/navigation_text_color :

     <selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- This is used when the Navigation Item is checked --> <item android:color="#009688" android:state_checked="true" /> <!-- This is the default text color --> <item android:color="#E91E63" /> </selector> 

    e layout :

     <android.support.design.widget.NavigationView . . app:itemTextColor="@drawable/navigation_text_color"/> 

    Se si intende in modo dinamico in modo programmato si potrebbe provare questo:

     // FOR NAVIGATION VIEW ITEM TEXT COLOR int[][] states = new int[][]{ new int[]{-android.R.attr.state_checked}, // unchecked new int[]{android.R.attr.state_checked}, // checked new int[]{} // default }; // Fill in color corresponding to state defined in state int[] colors = new int[]{ Color.parseColor("#747474"), Color.parseColor("#007f42"), Color.parseColor("#747474"), }; ColorStateList navigationViewColorStateList = new ColorStateList(states, colors); // apply to text color navigationView.setItemTextColor(navigationViewColorStateList); // apply to icon color navigationView.setItemIconTintList(navigationViewColorStateList); 

    Quindi è ansible definire diversi colors per impostazioni diverse come Day or Night.

    Finllay ho la risposta,

    È necessario cambiare il coloreAccent nel file dei colors a cui si vuole sempre il colore:

      <color name="colorAccent">whichever color required</color> 

    Questa soluzione ha funzionato per me

      <android.support.design.widget.NavigationView . . app:itemIconTint="@color/your_selector_file_name" // for Icon app:itemTextColor="@color/your_selector_file_name" // for text /> 

    Aggiungendo a ciò che @DAVOOD ha detto. Il selettore di colore sotto ha funzionato per me.

     <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- This is used when the Navigation Item is checked --> <item android:color="@color/tenoBrandColor" android:state_pressed="true" /> <!-- This is the default text color --> <item android:color="@color/textprimary" /> </selector> 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.