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>