【问题标题】:Is there a way to change the colors of the menu item icons and text?有没有办法改变菜单项图标和文本的颜色?
【发布时间】:2021-08-04 16:07:09
【问题描述】:

我在导航抽屉上有这样的菜单项:

        ...
        <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,无论我做什么,我都无法将它们从默认的灰色更改。

【问题讨论】:

    标签: android android-theme android-styles android-menu android-vectordrawable


    【解决方案1】:

    在您的布局 xml 文件中,您有 NavigationView。要更改图标和文本的颜色,只需添加这些代码,

    app:itemIconTint="#00xxxx"
    app:itemTextColor="#00xxxx"
    

    【讨论】:

      【解决方案2】:

      对于菜单文本颜色,在您的主题文件中更改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>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-07-28
        • 1970-01-01
        • 2020-07-09
        • 1970-01-01
        • 2019-10-30
        • 1970-01-01
        • 2022-01-16
        • 1970-01-01
        相关资源
        最近更新 更多