android - Android 应用中的 Material Design 主题 - 菜单项图标未从主题继承
问题描述
如果这是一个愚蠢的问题,但谷歌和过去的 SO 问题没有帮助,我是 Android 开发的新手,很抱歉。
我想为我的应用程序使用深色主题,所以我将主题设置为:
<style name="AppTheme" parent="Theme.MaterialComponents">
我有一个工具栏,其中包含一个包含 2 个项目的菜单。菜单定义为:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.mycompany.myapp.MainActivity">
<item
android:id="@+id/action_contacts"
android:icon="@drawable/ic_contacts_24"
android:title="@string/action_contacts"
app:showAsAction="always" />
<item
android:id="@+id/action_settings"
android:title="@string/action_settings"
app:showAsAction="never" />
</menu>
我遇到的问题是,虽然工具栏正确使用了深色主题,但第一个菜单项 ( @+id/action_open_contacts
) 将图标颜色设置为黑色,因此几乎看不到它。溢出菜单工作正常,并显示一个白色菜单图标。
为什么联系人图标不显示为白色?这不应该像菜单图标一样从应用程序的主题继承吗?
解决方案
你可以用 .
将此文件添加到可绘制文件夹 - settings_icon.xml:
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/ic_contacts_24"
android:tint="@color/colorBlack"/>
创建 colorBlack 或输入十六进制颜色,如#000000。
然后使用您的可绘制菜单项:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.mycompany.myapp.MainActivity">
<item
android:id="@+id/action_contacts"
android:icon="@drawable/settings_icon"
android:title="@string/action_contacts"
app:showAsAction="always" />
<item
android:id="@+id/action_settings"
android:title="@string/action_settings"
app:showAsAction="never" />
</menu>
我希望它对你有帮助!
推荐阅读
- java - VScode 中的 Java 输出
- r - 过滤不适用于 seq() data.table 上的索引
- c# - ASP.Net - 无法从委托事件更改标签文本
- c - STM32H743ZI Nucleo 似乎无法通过 FDCAN 2 传输?
- java - 将可选项转换为列表
- r - 将所有值除以参考行
- google-analytics - 我可以在 Firebase 报告中看到 30 分钟后的参数值吗?
- sql - SQL根据子句多次选择行
- python - 如何使用 python 从 C# dll 中读取私有变量
- rust - 在 rust 中使用 slice::from_raw_parts_mut 和 ptr::drop_in_place 进行内存释放