0

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

但是,我想对其进行测试,看看它未启用时的外观。

所以在开始时我将它设置为 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>

怎么了?它只会更改为专注和正常状态,但永远不会更改为禁用状态。(我只是注意到它可能是错误的词......)。

4

1 回答 1

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" />
于 2014-06-28T14:01:25.690 回答