首页 > 解决方案 > Android:无法自定义操作菜单样式

问题描述

我们无法在我们的应用程序中设置操作菜单项的样式,尝试以不同的方式设置样式。我们正在使用 androidx 库。请让我们知道我们可能做错了什么。感谢你的帮助。

<style name="MenuTextStyle" parent="TextAppearance.AppCompat.Widget.ActionBar.Menu">
    <item name="android:textColor">#F0F</item>
    <item name="android:textStyle">normal</item>
    <item name="android:textSize">10sp</item>
</style>

<style name="AppThemeMm" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item> //This works
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> //This works
    <item name="colorAccent">@color/colorAccent</item> //This works
    <item name="android:actionMenuTextAppearance">@style/MenuTextStyle</item> //This does not work
</style>

标签: androidmenu

解决方案


尝试这样的事情

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="android:dropDownListViewStyle">@style/actionMenuDropDown</item>
    <item name="android:listPreferredItemHeightSmall">50dp</item>
    <item name="colorAccent">@color/colorAccent</item>

</style>
    <style name="actionMenuDropDown" parent="@android:style/Widget.Holo.ListView.DropDown">
    <item name="android:divider">#5A5252</item>
    <item name="android:dividerHeight">1sp</item>
    <item name="android:listSelector">#FFEA00</item>
    <item name="android:background">#AC2299</item>
    <item name="android:textColor">#443A43</item>
</style>

如果您使用 PopupOverlay,文本颜色不会改变。但是您可以像这样覆盖文本颜色

 <style name="AppTheme.MyPopupOverlay" parent="ThemeOverlay.AppCompat.Dark" >
    <item name="android:textColor">#AC5532</item>
</style>

并像这样使用它

<androidx.appcompat.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        app:popupTheme="@style/AppTheme.MyPopupOverlay" />

推荐阅读