Android Studioの新しいデフォルトのナビゲーション引き出しアクティビティテンプレート
次のようにメニューファイル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" />
...
私の例の最初の項目は赤いアイコンを使用しています:
しかし、アプリを実行すると、アイコンの色は黒のままです。青、緑、黄、紫のアイコンについてこれをテストしましたが、結果は同じです。
私はどこかでツールバーが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 Studioのキャッシュ機能と関係があると考えたため、キャッシュを無効にし、Android Studioを運よく再起動しました。
@MDのコメントに基づいて、私がする必要があるのは以下を追加することだけでした:
app:itemIconTint="@color/my_desired_colour"
to NavigationView
(activity_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" />
新しいスタイルを作成します。
<style name="DrawerIconStyle" parent="Widget.AppCompat.DrawerArrowToggle">
<item name="color">@Android:color/red</item>
</style>
そしてあなたのテーマで:
<item name="drawerArrowStyle">@style/DrawerIconStyle</item>
@ojonugwa ochalifuと@MDのコメントに基づいて、
app:itemIconTint
と書くことで達成できますが、これを書くと、ナビゲーションドロワーアイコンの色も変わります。多くの研究開発の後に私が見つけたシンプルで簡単な解決策は、AppBarLayout
のテーマで<item name="colorControlNormal">#FFE730</item>
を定義すること、またはToolbar
なしでAppBarLayout
のみを使用する場合です。テーマに<item name="colorControlNormal">#FFE730</item>
を記述するか、XMLにpopupTheme
のToolbar
を記述します。
これにより、アクティビティの戻る矢印の色も変更されます。
これがこの種の問題に直面しているすべての人に役立つことを願っています。
私の場合、私はスタイルを持っていました
<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レイアウトに適用したため、プログラムによる色の連鎖は機能しませんでした。
したがって、適用したスタイルをすべて削除してみてください。アイコンの色を変更できない場合は、上記の解決策を試してください。
カラーファイルでcolorAccentを変更する必要があります。
<color name="colorAccent">whichever color required</color>
このソリューションは私のために働いた