Это мой селектор:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:drawable="@drawable/white_small_down_arrow_v4" android:state_pressed="true"/>
<item android:drawable="@drawable/white_small_up_arrow_v4" android:state_focused="false"/>
<item android:drawable="@drawable/white_small_up_arrow_v4" /> <!-- default -->
</selector>
Вот как я применил его к ImageView:
<ImageView
android:id="@+id/change_city_small_down_ImageView"
android:clickable="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toRightOf="@+id/changeCityRelativeLayout"
android:layout_marginLeft="5dp"
android:background="@drawable/change_city_selector"
</ImageView>
Теперь проблема в том, что когда я нажал ImageView, соответствующее отображаемое состояние изображения не изменилось. Пробовал на другом виджете, тоже не работает. Я не могу понять, почему, потому что я делал это так же, и это работает.
Я отслеживал состояния изображения при нажатии.
v.hasFocus(): false, v.isClickable(): true, v.isInTouchMode(): true, v.isEnabled(): true, v.isPressed(): true
Я совершил ужасную ошибку, white_small_down_arrow_v4 и white_small_up_arrow_v4 на самом деле указывают в одном направлении, другими словами, это одна и та же картинка.
так что, возможно, моя ошибка поможет кому-то еще, если они обнаружат, что селектор не работает, и первое, что нужно сделать, это проверить, совпадают ли рисунки состояния....