2015-10-29 24 views
27

Der neue Standard-Navigationsleiste Aktivitätsvorlage in Android StudioFarbe ändern der Navigationsleiste Icon in Android Studio Standardvorlage

enter image description here

definiert seine Titel und Symbole in einer Menüdatei activity_main_drawer wie folgt aus:

<group android:checkableBehavior="single"> 
    <item 
     android:id="@+id/nav_camara" 
     android:icon="@drawable/ic_action_emo_cool" 
     android:title="Import" /> 
    <item 
     android:id="@+id/nav_gallery" 
     android:icon="@android:drawable/ic_menu_gallery" 
     android:title="Gallery" /> 
    <item 
     android:id="@+id/nav_slideshow" 
     android:icon="@android:drawable/ic_menu_slideshow" 
     android:title="Slideshow" /> 
     ... 

Der erste Punkt in meinem Beispiel wird ein rotes Symbol:

enter image description here

aber wenn ich die App laufen, bleibt die Farbe des Symbols schwarz.Ich habe dies für blaue, grüne, gelbe und violette Symbole getestet, aber das Ergebnis ist das gleiche.

enter image description here

Ich habe irgendwo gelesen, dass die Symbolleiste ThemeOverlay.AppCompat.Dark.ActionBar und meine App bereits verwendet diese in der styles.xml Datei verwenden sollte:

<resources> 

<!-- Base application theme. --> 
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <!-- Customize your theme here. --> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="colorAccent">@color/colorAccent</item> 
</style> 
<style name="AppTheme.NoActionBar"> 
    <item name="windowActionBar">false</item> 
    <item name="windowNoTitle">true</item> 
</style> 
<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" /> 
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" /> 

Anfangs dachte ich, das etwas mit Android zu tun hatte Die Cache-Funktion von Studio, also habe ich den Cache ungültig gemacht und Android Studio ohne Glück neu gestartet.

+5

versuchen Sie zu 'app: itemIconTint =" @ android: color/blue "' zu Ihrer 'navigation View' –

+0

[http://stackoverflow.com/questions/30967851/change-navigation-view-item-color-dynamicly -android] (http://stackoverflow.com/questions/30967851/change-navigation-view-item-color-dynamicly-android) –

+0

Dank @MD. Das war alles, was ich brauchte, um –

Antwort

65

Basierend auf @ MD Kommentar, alles, was ich tun musste, war hinzufügen:

app:itemIconTint="@color/my_desired_colour" 

zu NavigationView Der Standard Farbton schwarz (in activity_main.xml Layout-Datei befindet), aber Sie können einen noch dunkleren Schatten verwenden schwarz von #000000

<android.support.design.widget.NavigationView 
    android:id="@+id/nav_view" 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:layout_gravity="start" 
    android:fitsSystemWindows="true" 
    app:headerLayout="@layout/nav_header_main" 
    app:itemIconTint="#000000" 
    app:menu="@menu/activity_main_drawer" /> 
+0

danke hinzuzufügen :) Wie würde ich über eine Tönung für alle Symbole außer einem gesetzt werden. Für ein bestimmtes Symbol, ich möchte den Farbton auf Null gesetzt (dh) ein bestimmtes Menü Item-Symbol erscheint in voller Farbe in allen Zuständen – Rohan

+0

Sie begrüßen ... Aber bin mir nicht sicher, wie Sie das erreichen können.Sorry –

+0

es funktioniert für mich . –

0

Sie müssen die colorAccent in den Farben Datei ändern zu verwenden, die überhaupt Farbe Sie wollen:

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

Diese Lösung funktionierte für mich

15

Erstellen Sie einen neuen Stil:

<style name="DrawerIconStyle" parent="Widget.AppCompat.DrawerArrowToggle"> 
    <item name="color">@android:color/red</item> 
</style> 

und n Ihr Thema:

<item name="drawerArrowStyle">@style/DrawerIconStyle</item> 
+1

Das hat für mich jede andere Lösung geklappt – yashpandey

0

Basierend auf @ojonugwa ochalifu und @ MD Kommentar,

Sie können erreichen, indem Sie app:itemIconTint schreiben, aber wenn Sie dies schreiben, die Navigationsschubladen i con Farbe wird auch geändert. Die einfache und einfache Lösung, die ich nach vielen R & D gefunden ist, dass Sie <item name="colorControlNormal">#FFE730</item> in Thema AppBarLayout definieren haben oder wenn Sie mit Toolbar nur ohne AppBarLayout, können Sie auch <item name="colorControlNormal">#FFE730</item> in Thema oder popupTheme von Toolbar in Ihrem xml schreiben.

Dies ändert auch die Farbe des Zurückpfeils der Aktivität.

Hoffe das hilft Ihnen allen, die mit dieser Art von Problem konfrontiert sind.

Verwandte Themen