actionMenuTextColor 在使用时不起作用?/attr

actionMenuTextColor not working when using ?/attr

我正在尝试更改工具栏中文本菜单项的颜色

使用时:

<style name="Base.App" parent="Theme.MaterialComponents.Light.NoActionBar">
        <item name="actionMenuTextColor">@color/blue</item>

有效,但使用时:

<style name="Base.App" parent="Theme.MaterialComponents.Light.NoActionBar">
            <item name="actionMenuTextColor">?attr/colorPrimary</item>

没有。

有什么想法吗?

编辑 1:

工具栏样式如下

<item name="toolbarStyle">@style/Widget.App.Toolbar</item>

<style name="Widget.App.Toolbar" parent="Widget.MaterialComponents.Toolbar.Primary">
        <item name="materialThemeOverlay">@style/ThemeOverlay.App.Toolbar</item>
        <item name="titleTextAppearance">@style/Widget.App.Toolbar.TitleTextAppearance</item>
    </style>

    <style name="Widget.App.Toolbar.TitleTextAppearance" parent="TextAppearance.App.Headline6">
        <item name="android:textStyle">bold</item>
    </style>

编辑 2:

使用

<style name="Base.App" parent="Theme.MaterialComponents.Light.NoActionBar">
            <item name="actionMenuTextColor">?attr/colorPrimaryVariant</item>

确实有效。但同样,不是 colorPrimary

<item name="actionMenuTextColor">?attr/colorPrimary</item>

它不使用 colorPrimary,因为在 Toolbar 中,您用以下内容覆盖了 colorPrimary

<style name="Widget.App.Toolbar" parent="Widget.MaterialComponents.Toolbar.Primary">
    <item name="materialThemeOverlay">@style/ThemeOverlay.App.Toolbar</item>      
</style>

<style name="ThemeOverlay.App.Toolbar" parent=""> 
    <item name="colorPrimary">?attr/colorApp4</item>  <!-- HERE -->
</style>

意思是在actionMenuTextColor中使用?attr/colorPrimary,在Toolbar中使用colorApp4

如果您想更改默认颜色,只需应用:

<style name="ThemeOverlay.App.Toolbar" parent=""> 
    <item name="colorPrimary">?attr/colorApp4</item>  
    <item name="actionMenuTextColor">......</item>
</style>