Android RelativeLayout更改颜色onClick

Guy*_*kes 24 java android

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

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

<?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>
Run Code Online (Sandbox Code Playgroud)

并在布局背景中使用它...

android:background="@color/layout_selector"

但这给了我一个膨胀例外......

有任何想法吗?

小智 52

请尝试以下步骤:

res - > values文件夹中创建带有内容的color.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>     
    <color name="black">#000000</color> 
    <color name="white">#ffffff</color>
</resources>
Run Code Online (Sandbox Code Playgroud)

由于<item>选择器中的标记需要一个drawable属性或定义drawable的子标记,因此layout_selector.xml文件(保存在res - > drawable中)应如下所示:

<?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>
Run Code Online (Sandbox Code Playgroud)

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

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

希望能帮助到你

  • 尝试从代码中删除`android:state_enabled ="false"` (10认同)
  • 优秀.这就像一个魅力.问题实际上它必须是一个可绘制的资源而不是android:color列表. (2认同)

Koc*_*cus 10

在RealtiveLayout的android:background属性上使用选择器.还可以布局可点击(直通android:clickable="true").