Android RelativeLayout изменит цвет onClick
Как изменить цвет Relative Layout, который я использую в качестве кликабельного на Click, как обычная кнопка?
Как будто я хочу визуальную обратную связь, макет был нажат.
Я попробовал его с селектором, привязанным к свойству фона, например:
<?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>
и использовал его в макетах Layouts...
android:background="@color/layout_selector"
но это дает мне исключение Inflate...
Любые идеи?
Ответы
Ответ 1
Попробуйте выполнить следующие действия:
В папке 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"
Надеюсь, что это поможет
Ответ 2
Используйте селектор в атрибуте android: background вашего RealtiveLayout.
Также сделайте макет кликабельным (через android:clickable="true"
).
Ответ 3
Макеты не отображаются на экране. Они могут только склонить взгляд. Вы добавили некоторый вид, а затем добавили в него просмотр onClick.
Возможная публикация: интерактивный макет Android
Ответ 4
поместите этот layout_selector.xml в выпадающую папку, то есть (res > drawable > layout_selector.xml)
затем установите android:background="@drawable/layout_selector"
вместо android:background="@color/layout_selector"