如何更改导航图标颜色
How to change the navigation icon color
我的应用程序中有一个导航视图,在应用程序样式中添加两行之后:
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
导航图标颜色更改为黑色,针对这个问题,我在样式中添加了这一行:
<item name="android:textColorSecondary">@android:color/white</item>
现在导航图标又变白了,但现在我有一个新问题。通过以上代码,导航项的标题也变色了。
我没有找到解决此干扰的方法
样式:
<!-- 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>
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="android:textColorSecondary">@android:color/white</item>
</style>
导航菜单:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:showIn="navigation_view">
<group
android:id="@+id/testGRP"
android:checkableBehavior="single"
>
<item android:title="جلسه : انتخاب نشده"
android:id="@+id/menuItem_StudentList11"
android:icon="@drawable/ic_arrow_drop_up"
/>
<item android:title="مرتب سازی"
android:id="@+id/menuItem_StudentList_Quize1"
android:icon="@drawable/all_exam_icon"
/>
<item android:title="@string/Navigation_StudentList3"
android:id="@+id/menuItem_StudentList_Quize"
android:icon="@drawable/all_exam_icon"
/>
</group>
<item android:title="رویدادها:"> //this line is title
<menu>
<item android:title="@string/Navigation_StudentList4"
android:id="@+id/menuItem_StudentList_MidTerm"
android:icon="@drawable/all_exam_icon"
/>
<item android:title="@string/Navigation_StudentList5"
android:id="@+id/menuItem_StudentList_EndTerm"
android:icon="@drawable/all_exam_icon"
/>
<item android:title="امتحان عملی"
android:id="@+id/menuItem_StudentList_Practical"
android:icon="@drawable/all_exam_icon"
/>
<item android:title="@string/Navigation_StudentList6"
android:id="@+id/menuItem_StudentList_Project"
android:icon="@drawable/all_projcet_icon"
/>
<item android:title="@string/Navigation_StudentList2"
android:id="@+id/menuItem_StudentList_Conference"
android:icon="@drawable/all_conference_icon"
/>
</menu>
</item>
<item android:title="@string/Navigation_StudentList1"
android:id="@+id/menuItem_StudentList1"
android:icon="@drawable/all_notifiicon_icon"
/>
<item android:title="@string/Navigation_StudentList7"
android:id="@+id/menuItem_StudentList7"
android:icon="@drawable/main_newclass_icon"
/>
</menu>
enter image description here
enter image description here
如果您要更改 NavigationView
项中的文本 colors/appearance,您应该使用属性
app:itemTextColor
app:itemIconTint
app:itemTextAppearance
否则,指定要更改哪个视图的颜色。根据我的说法,设置 android:textColorSeconday
是个坏主意。
使用 Toolbar
,要更改导航图标颜色,您可以使用:
使用 MaterialToolbar
或(androidx 和 Material 主题):
<com.google.android.material.appbar.MaterialToolbar
android:theme="@style/MyThemeOverlay_Toolbar"
...>
<style name="MyThemeOverlay_Toolbar" parent="ThemeOverlay.MaterialComponents.Toolbar.Primary">
<!-- color used by navigation icon and overflow icon -->
<item name="colorOnPrimary">@color/secondaryColor</item>
</style>
有了支持库:
<android.support.v7.widget.Toolbar
app:theme="@style/ThemeToolbar" />
<style name="ThemeToolbar" parent="Theme.AppCompat.Light">
<!-- navigation icon color -->
<item name="colorControlNormal">@color/my_color</item>
</style>
我的应用程序中有一个导航视图,在应用程序样式中添加两行之后:
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
导航图标颜色更改为黑色,针对这个问题,我在样式中添加了这一行:
<item name="android:textColorSecondary">@android:color/white</item>
现在导航图标又变白了,但现在我有一个新问题。通过以上代码,导航项的标题也变色了。
我没有找到解决此干扰的方法
样式:
<!-- 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>
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="android:textColorSecondary">@android:color/white</item>
</style>
导航菜单:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:showIn="navigation_view">
<group
android:id="@+id/testGRP"
android:checkableBehavior="single"
>
<item android:title="جلسه : انتخاب نشده"
android:id="@+id/menuItem_StudentList11"
android:icon="@drawable/ic_arrow_drop_up"
/>
<item android:title="مرتب سازی"
android:id="@+id/menuItem_StudentList_Quize1"
android:icon="@drawable/all_exam_icon"
/>
<item android:title="@string/Navigation_StudentList3"
android:id="@+id/menuItem_StudentList_Quize"
android:icon="@drawable/all_exam_icon"
/>
</group>
<item android:title="رویدادها:"> //this line is title
<menu>
<item android:title="@string/Navigation_StudentList4"
android:id="@+id/menuItem_StudentList_MidTerm"
android:icon="@drawable/all_exam_icon"
/>
<item android:title="@string/Navigation_StudentList5"
android:id="@+id/menuItem_StudentList_EndTerm"
android:icon="@drawable/all_exam_icon"
/>
<item android:title="امتحان عملی"
android:id="@+id/menuItem_StudentList_Practical"
android:icon="@drawable/all_exam_icon"
/>
<item android:title="@string/Navigation_StudentList6"
android:id="@+id/menuItem_StudentList_Project"
android:icon="@drawable/all_projcet_icon"
/>
<item android:title="@string/Navigation_StudentList2"
android:id="@+id/menuItem_StudentList_Conference"
android:icon="@drawable/all_conference_icon"
/>
</menu>
</item>
<item android:title="@string/Navigation_StudentList1"
android:id="@+id/menuItem_StudentList1"
android:icon="@drawable/all_notifiicon_icon"
/>
<item android:title="@string/Navigation_StudentList7"
android:id="@+id/menuItem_StudentList7"
android:icon="@drawable/main_newclass_icon"
/>
</menu>
enter image description here
enter image description here
如果您要更改 NavigationView
项中的文本 colors/appearance,您应该使用属性
app:itemTextColor
app:itemIconTint
app:itemTextAppearance
否则,指定要更改哪个视图的颜色。根据我的说法,设置 android:textColorSeconday
是个坏主意。
使用 Toolbar
,要更改导航图标颜色,您可以使用:
使用 MaterialToolbar
或(androidx 和 Material 主题):
<com.google.android.material.appbar.MaterialToolbar
android:theme="@style/MyThemeOverlay_Toolbar"
...>
<style name="MyThemeOverlay_Toolbar" parent="ThemeOverlay.MaterialComponents.Toolbar.Primary">
<!-- color used by navigation icon and overflow icon -->
<item name="colorOnPrimary">@color/secondaryColor</item>
</style>
有了支持库:
<android.support.v7.widget.Toolbar
app:theme="@style/ThemeToolbar" />
<style name="ThemeToolbar" parent="Theme.AppCompat.Light">
<!-- navigation icon color -->
<item name="colorControlNormal">@color/my_color</item>
</style>