これは私のセレクタです:
<?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を押したときに、それに応じた状態の描画可能な画像が変化しないことです。他のwiddetでも試しましたが、うまくいきません。以前は同じ方法でこれを行っていたので、理由がわかりませんが、うまくいきます。
クリックされたときのイメージビューの状態を監視しました。
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 は実際には同じ方向を指しています。つまり、それらは同じ絵です。
したがって、セレクターが機能しないことがわかった場合、おそらく私の間違いは他の誰かを助けるでしょう。最初にすべきことは、状態のドローアブルが同じかどうかを確認することです....