Android RelativeLayout 更改颜色 上单击

2022-09-01 18:17:23

如何更改我用作可单击的相对布局的颜色 单击像普通按钮一样?就像我想要一个视觉反馈,布局被按下了。

我尝试使用绑定到背景属性的选择器,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
   <item android:state_focused="true" android:color="@android:color/black"/>
   <item android:state_pressed="true" android:state_enabled="false" android:color="@android:color/black" />
   <item android:color="@android:color/white"/>
</selector>

并在布局回退中使用它...

android:background="@color/layout_selector"

但这给了我一个膨胀异常...

有什么想法吗?


答案 1

请尝试以下步骤:

res --> 值文件夹中,创建颜色.xml内容为:

<?xml version="1.0" encoding="utf-8"?>
<resources>     
    <color name="black">#000000</color> 
    <color name="white">#ffffff</color>
</resources>

由于选择器中的标签需要可绘制属性或定义可绘制对象的子标签,因此layout_selector.xml文件(以 res --> 可绘制形式保存)应如下所示:<item>

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android">   
    <item android:state_focused="true" android:drawable="@color/black"/> 
    <item android:state_pressed="true" android:state_enabled="false" android:drawable="@color/black" />
    <item android:drawable="@color/white"/> 
 </selector>

此外,如前所述,相对布局应该是可单击的(android:clickable="true")

并将其背景设置为android:background="@drawable/layout_selector"

希望它有帮助


答案 2

在 RealtiveLayout 的 android:background 属性上使用选择器。还要使布局可单击(通过 )。android:clickable="true"


推荐