Android选择器不工作

时间:2014-06-28 13:01:37

标签: android android-imagebutton

我为我的活动中的下一个按钮制作了三个不同的图像。未启用按钮时的聚焦图像,普通图像和图像。

但是,我想测试一下,看看它什么时候没有启用。

所以在开始时我将它设置为false并且它确实有效,我无法触摸它并且它不再变为聚焦,但图像不会改变。

我布局中的ImageButton

    <ImageButton
        android:id="@+id/nextButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@null"
        android:padding="5dp"
        android:src="@drawable/nextbutton" />

选择器文件 nextbutton.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/btn_next_focused" android:state_focused="true" android:state_pressed="true"/>
    <item android:drawable="@drawable/btn_next_focused" android:state_focused="false" android:state_pressed="true"/>
    <item android:drawable="@drawable/btn_next_focused" android:state_focused="true"/>
    <item android:drawable="@drawable/btn_next" android:state_focused="false" android:state_pressed="false"/>
    <item android:drawable="@drawable/btn_next_disabled" android:state_enabled="false"/>

</selector>

有什么问题?它只会变为专注和正常状态,但永远不会变为残疾状态。 (我只是注意到它可能是错误的词......)。

1 个答案:

答案 0 :(得分:1)

我发现了。我仍然不知道为什么,但我有一个线索。我必须将此行添加到选择器中的所有其他项目。

android:state_enabled="false"

所以它看起来像这样:

<item android:drawable="@drawable/btn_next_focused" android:state_focused="true" android:state_pressed="true" android:state_enabled="false" />
<item android:drawable="@drawable/btn_next_focused" android:state_focused="false" android:state_pressed="true" android:state_enabled="false" />
<item android:drawable="@drawable/btn_next_focused" android:state_focused="true" android:state_enabled="false" />
<item android:drawable="@drawable/btn_next" android:state_focused="false" android:state_pressed="false" android:state_enabled="false" />