在安卓中,当菜单按钮被按下时改变颜色

4

我制作了一个自定义菜单项,它有彩色背景。当按钮按下该项时,我希望菜单选择按钮的颜色变为另一种颜色,如下图所示:

enter image description here

这是我的自定义样式:

 <style name="Menu">
        <item name="android:colorBackground">@color/white</item>
        <item name="android:textColor">@color/colorAccent</item>
        <item name="android:background">@drawable/item_bg_menu</item>
        </style>

item_bg_menu:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item
    android:state_focused="true"
    android:state_pressed="true"
        android:drawable="@color/white" />

    <item
        android:state_pressed="true"
        android:drawable="@color/gray" />

</selector>

这就是我使用菜单的方式:

app:popupTheme="@style/Menu"

请发布您的菜单和XML文件。在TextView中查找填充。 - W4R10CK
我认为这个问题已经被重复了。请查看此链接https://dev59.com/iITba4cB1Zd3GeqP8qC0 - aslamhossin
1个回答

2

最好、最简单的方法是制作自己的样式

在这种情况下,样式名称为菜单

<style name="Menu">
    <item name="android:colorBackground">@color/gray</item>   //color of background menu
    <item name="android:textColor">@color/white</item>       //text color
    <item name="android:listSelector">@drawable/item_bg_menu</item>     //this is for when button press color changed
    </style>

item_bg_menu

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_pressed="true" android:drawable="@color/black" />  //color when button press

</selector>

如果你想在工具栏中使用该菜单,只需添加以下代码:app:popupTheme="@style/Menu"


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接