You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

menu.xml被其他XML文件引入时图标未按设置颜色显示

问题表现

在menu.xml中为图标配置了指定颜色,将该menu文件引入到其他XML布局使用时,图标没有按照预设值显示对应颜色,异常效果如下:
图标颜色显示异常截图
可根据调试需要补充更多相关信息。

排查&解决方法

  • 检查承载menu的控件配置
    常用的承载menu的控件比如Toolbar、BottomNavigationView、NavigationBarView等,如果设置了app:itemIconTint属性,会全局覆盖menu文件内单独给图标设置的颜色。如果需要保留menu里自定义的图标颜色,把这个全局着色属性设为@null即可,以Toolbar为例:
    <androidx.appcompat.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        app:iconTint="@null"
        />
    
    注意部分主题会默认给Toolbar等控件设置图标色调,默认色调优先取主题的colorControlNormal值,不手动关闭的话会覆盖你在menu里的配置。
  • 检查图标资源本身的配置
    如果你用的图标是矢量图(VectorDrawable),打开对应的drawable资源文件,检查是否在文件内写死了android:tint属性,这个属性的优先级高于menu里的配置,删掉写死的tint或者改成你需要的颜色即可。
  • 检查代码层面的覆盖逻辑
    搜索对应页面加载menu的代码,确认是否调用了setIconTintList()、MenuItemCompat.setIconTintList()这类动态设置图标着色的方法,这类代码逻辑会覆盖XML里的静态配置,删掉不符合预期的着色代码即可。

内容的提问来源于stack exchange,提问作者Tomáš Staroň

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.02 03:15:43