Android RelativeLayout изменит цвет onClick

Как изменить цвет Relative Layout, который я использую в качестве кликабельного на Click, как обычная кнопка? Как будто мне нужна визуальная обратная связь, макет был нажат.

Я попробовал его с помощью селектора, связанного с свойством 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> 

И использовал его в макетах …

android:background="@color/layout_selector"

Но это дает мне Inflate Exception …

Есть идеи?

Solutions Collecting From Web of "Android RelativeLayout изменит цвет onClick"

Выполните следующие шаги:

В папке res -> values создайте color.xml с содержимым:

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

Поскольку <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> 

Кроме того, как было сказано ранее, относительная компоновка должна быть интерактивной ( android:clickable="true" )

И его фон установлен как android:background="@drawable/layout_selector"

Надеюсь, поможет

Используйте селектор в атрибуте android: background вашего RealtiveLayout. Также сделайте макет кликабельным (через android:clickable="true" ).

Макеты не отображаются на экране. Они могут только сдерживать взгляды. Вы добавили некоторый вид, а затем добавили onClick listener к этому представлению.

Возможная публикация: интерактивный макет Android

Поместите этот layout_selector.xml в выпадающую папку ie (res> drawable> layout_selector.xml), затем установите android:background="@drawable/layout_selector" вместо android:background="@color/layout_selector"