这是我的选择器:
<?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 时,相应的状态可绘制图像不会改变。我已经在其他 wigdet 上尝试过,也不起作用。我不知道为什么,因为我曾经这样做过,而且它有效。
当它被点击时,我已经监控了 imageview 的状态。
v.hasFocus():假,v.isClickable():真,v.isInTouchMode():真,v.isEnabled():真,v.isPressed():真
我犯了一个可怕的错误,white_small_down_arrow_v4 和 white_small_up_arrow_v4 实际上指向同一个方向,换句话说,它们是同一张图片。
所以,如果他们发现选择器不起作用,可能我的错误会对其他人有所帮助,首先要做的是检查状态可绘制对象是否相同......