有没有办法改变菜单项图标和文本的颜色?
Is there a way to change the colors of the menu item icons and text?
我在导航抽屉上有这样的菜单项:
...
<item
android:id="@+id/nav_item_language"
android:icon="@drawable/ic_language"
android:title="@string/language" />
<item
android:id="@+id/nav_item_theme"
android:icon="@drawable/ic_theme"
android:title="@string/theme" />
</group>
<group
android:id="@+id/nav_group_intents"
android:checkableBehavior="none">
<item
android:id="@+id/nav_item_share"
android:icon="@drawable/ic_share"
android:title="@string/share" />
<item
android:id="@+id/nav_item_rate_app"
android:icon="@drawable/ic_rate"
android:title="@string/rate_app" />
<item
android:id="@+id/nav_item_contact_us"
android:icon="@drawable/ic_contact_us"
android:title="@string/contact_us" />
</group>
</menu>
我希望文本和图标在深色主题上是最深的黑色 (#000000),在浅色主题上是最亮的白色 (#FFFFFF),但现在它们总是有些灰色。
我试过将其作为菜单项中的属性:
<item
app:iconTint="@android:color/black"
android:id="@+id/nav_item_language"
android:icon="@drawable/ic_language"
android:title="@string/language" />
并在样式中添加这些项目:
<style name="AppThemeLight" parent="Theme.AppCompat.Light.NoActionBar">
...
<item name="android:itemTextAppearance">@android:color/black</item>
<item name="android:actionMenuTextColor">@android:color/black</item>
</style>
对于深色主题,我尝试了同样的方法,但 @android:color/white
而不是,无论我做什么,我都无法更改它们的默认灰色。
在您的布局 xml 文件中,您 NavigationView.To 更改图标和文本的颜色只需添加这些代码,
app:itemIconTint="#00xxxx"
app:itemTextColor="#00xxxx"
对于菜单文本颜色,在您的主题文件中更改 itemTextAppearance
<style name="AppTheme" parent="Theme.MaterialComponents.DayNight.NoActionBar.Bridge" >
...
<item name="android:itemTextAppearance">@style/menuItemColor</item>
</style>
在您的样式中创建 menuItemColor
样式
<style name="menuItemColor" parent="@android:style/TextAppearance.Widget.IconMenu.Item">
<item name="android:textColor">?android:attr/textColorPrimary</item>
</style>
我在导航抽屉上有这样的菜单项:
...
<item
android:id="@+id/nav_item_language"
android:icon="@drawable/ic_language"
android:title="@string/language" />
<item
android:id="@+id/nav_item_theme"
android:icon="@drawable/ic_theme"
android:title="@string/theme" />
</group>
<group
android:id="@+id/nav_group_intents"
android:checkableBehavior="none">
<item
android:id="@+id/nav_item_share"
android:icon="@drawable/ic_share"
android:title="@string/share" />
<item
android:id="@+id/nav_item_rate_app"
android:icon="@drawable/ic_rate"
android:title="@string/rate_app" />
<item
android:id="@+id/nav_item_contact_us"
android:icon="@drawable/ic_contact_us"
android:title="@string/contact_us" />
</group>
</menu>
我希望文本和图标在深色主题上是最深的黑色 (#000000),在浅色主题上是最亮的白色 (#FFFFFF),但现在它们总是有些灰色。
我试过将其作为菜单项中的属性:
<item
app:iconTint="@android:color/black"
android:id="@+id/nav_item_language"
android:icon="@drawable/ic_language"
android:title="@string/language" />
并在样式中添加这些项目:
<style name="AppThemeLight" parent="Theme.AppCompat.Light.NoActionBar">
...
<item name="android:itemTextAppearance">@android:color/black</item>
<item name="android:actionMenuTextColor">@android:color/black</item>
</style>
对于深色主题,我尝试了同样的方法,但 @android:color/white
而不是,无论我做什么,我都无法更改它们的默认灰色。
在您的布局 xml 文件中,您 NavigationView.To 更改图标和文本的颜色只需添加这些代码,
app:itemIconTint="#00xxxx"
app:itemTextColor="#00xxxx"
对于菜单文本颜色,在您的主题文件中更改 itemTextAppearance
<style name="AppTheme" parent="Theme.MaterialComponents.DayNight.NoActionBar.Bridge" >
...
<item name="android:itemTextAppearance">@style/menuItemColor</item>
</style>
在您的样式中创建 menuItemColor
样式
<style name="menuItemColor" parent="@android:style/TextAppearance.Widget.IconMenu.Item">
<item name="android:textColor">?android:attr/textColorPrimary</item>
</style>