如何改变弹出菜单的图标颜色(材质设计3)在Android?



我试图在我的应用程序下面的例子实现一个PopupMenu。它可以工作,但我不能改变图标的颜色。我该如何实现呢?

同时我可以改变背景颜色:

<style name="Theme.MyApp" parent="Theme.Material3.DayNight.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorBackground</item>
<item name="android:navigationBarColor">@color/colorWhite</item>
<item name="android:windowBackground">@color/colorBackground</item>
<item name="popupMenuStyle">@style/Widget.App.PopupMenu</item>
<item name="colorControlNormal">@color/colorSecondary</item> // <--- This one has no effect
</style>
<style name="Widget.App.PopupMenu" parent="Widget.Material3.PopupMenu">
<item name="android:popupBackground">@drawable/menu_back</item> // <-- This changes background and it works good.
<item name="colorControlNormal">@color/colorSecondary</item> // <--- Even placed here still doesn't work
<item name="android:colorControlNormal">@color/colorSecondary</item> // <-- even with android:
</style>

我正在使用新的Material Design 3库从谷歌。

此外,我试图在互联网上找到一些东西,我只能找到解决我的问题关于PopupMenuToolbar,这不是我的情况。我需要一个PopupMenu当一个按钮被点击。

我以前搜索过这个问题的解决方案,发现这个解决方案是最好的(甚至可以支持夜间模式)

在您的menu.xml文件在下面的示例中:menu_items_options.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/menu_share"
android:title="share"
android:icon="@drawable/round_ios_share_24"
app:iconTint="?attr/colorOnSurface"
/>
<item
android:id="@+id/menu_select"
android:title="select"
android:icon="@drawable/round_select_all_24"
app:iconTint="?attr/colorOnSurface"
/>
</menu>

添加
app:iconTint="?attr/colorOnSurface"

您可以更改为"?attr/colorOnSurface"你想要的颜色(最好使用我提到的颜色),以获得更好的昼夜模式体验

注意:"应用:iconTint"不是"android: iconTint"

相关内容

  • 没有找到相关文章

最新更新