Android: State_pressed не работает

У меня есть следующий код XML в res/drawable и я установил кнопку background к этому drawable, Однако, когда я нажал кнопку, это не меняет color, Спасибо за помощь

<item android:state_enabled="false"
    android:drawable="@color/colorAccent">
</item>

<item android:state_enabled="true"
    android:drawable="@color/colorPrimary">
</item>

<item
    android:state_selected="false"
    android:state_pressed="true"
    android:drawable="@color/black">
</item>

3 ответа

Решение
<selector>
<item android:state_pressed="true" android:drawable="#EDCFE9"/>
<item android:state_selected="true" android:drawable="#EDCFE9"/>
<item android:drawable="#603F86"/>
</selector>

Попробуйте это, и это изменит цвет кнопки при нажатии кнопки.

Хорошо, вы должны помнить, что андроид читал строку за строкой и возвращать первый истинный комментарий. потому что вы включили ложные / истинные элементы ПЕРЕД выбранным state_Selected, он всегда выберет enable = false / true item. просто переместите свой нижний код перед "state_enabled" следующим образом:

<item
    android:state_selected="false"
    android:state_pressed="true"
    android:drawable="@color/black">
</item>

<item android:state_enabled="false"
    android:drawable="@color/colorAccent">
</item>

<item android:state_enabled="true"
    android:drawable="@color/colorPrimary">
</item>

Создайте новый чертеж с кодом ниже:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@color/pink"/> <!-- pressed state -->
<item android:drawable="@color/blue"/> <!-- default state -->
</selector>

Добавьте следующие цвета в values > colors.xml файл

<color name="blue">#49B8C7</color>
<color name="pink">#FF8EB9</color>
Другие вопросы по тегам