我试图在我的应用程序下面的例子实现一个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
库从谷歌。
此外,我试图在互联网上找到一些东西,我只能找到解决我的问题关于PopupMenu
对Toolbar
,这不是我的情况。我需要一个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"