web-dev-qa-db-ja.com

Android St​​udioのデフォルトテンプレートのナビゲーションドロワーアイコンの色を変更する

Android St​​udioの新しいデフォルトのナビゲーション引き出しアクティビティテンプレート

enter image description here

次のようにメニューファイルactivity_main_drawerでタイトルとアイコンを定義します。

<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" />
        ...

私の例の最初の項目は赤いアイコンを使用しています:

enter image description here

しかし、アプリを実行すると、アイコンの色は黒のままです。青、緑、黄、紫のアイコンについてこれをテストしましたが、結果は同じです。

enter image description here

私はどこかでツールバーがThemeOverlay.AppCompat.Dark.ActionBarを使用するべきであり、私のアプリは既にstyles.xmlファイルでこれを使用していると読みました:

<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" />

当初、これはAndroid St​​udioのキャッシュ機能と関係があると考えたため、キャッシュを無効にし、Android St​​udioを運よく再起動しました。

45

@MDのコメントに基づいて、私がする必要があるのは以下を追加することだけでした:

app:itemIconTint="@color/my_desired_colour"

to NavigationViewactivity_main.xmlレイアウトファイルにあります)デフォルトの色合いは黒ですが、#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" />
108

新しいスタイルを作成します。

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

そしてあなたのテーマで:

<item name="drawerArrowStyle">@style/DrawerIconStyle</item>
33
Pablo Cegarra

@ojonugwa ochalifuと@MDのコメントに基づいて、

app:itemIconTintと書くことで達成できますが、これを書くと、ナビゲーションドロワーアイコンの色も変わります。多くの研究開発の後に私が見つけたシンプルで簡単な解決策は、AppBarLayoutのテーマで<item name="colorControlNormal">#FFE730</item>を定義すること、またはToolbarなしでAppBarLayoutのみを使用する場合です。テーマに<item name="colorControlNormal">#FFE730</item>を記述するか、XMLにpopupThemeToolbarを記述します。

これにより、アクティビティの戻る矢印の色も変更されます。

これがこの種の問題に直面しているすべての人に役立つことを願っています。

3
Smeet

私の場合、私はスタイルを持っていました

 <style name="MyToolbarStyle" parent="Theme.AppCompat">
     <item name="actionOverflowButtonStyle">@style/ActionButtonOverflowStyle</item>
     <item name="drawerArrowStyle">@style/DrawerArrowStyle</item>
 </style>
 <style name="ActionButtonOverflowStyle">
        <item name="Android:color">@color/colorPrimary</item>
    </style>
    <style name="DrawerArrowStyle">
        <item name="Android:color">@color/colorPrimary</item>
    </style>

テーマをAppbarレイアウトに適用したため、プログラムによる色の連鎖は機能しませんでした。

したがって、適用したスタイルをすべて削除してみてください。アイコンの色を変更できない場合は、上記の解決策を試してください。

1
Reejesh PK

カラーファイルでcolorAccentを変更する必要があります。

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

このソリューションは私のために働いた

0
Parth Anjaria