我为我的活动中的下一个按钮制作了三个不同的图像。未启用按钮时的聚焦图像,普通图像和图像。
但是,我想测试一下,看看它什么时候没有启用。
所以在开始时我将它设置为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>
有什么问题?它只会变为专注和正常状态,但永远不会变为残疾状态。 (我只是注意到它可能是错误的词......)。
答案 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" />