我只是想创建一个自定义的9-Patch Button。所以这就是我所拥有的:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/yellow_button_background_pressed"
android:state_pressed="true" />
<item android:drawable="@drawable/yellow_button_background_pressed"
android:state_focused="true" />
<item android:drawable="@drawable/yellow_button_background_default" />
</selector>
使用相应的图像:(默认),(按下)
和布局
<Button
android:id="@+id/answerAButton"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@string/answer_a"
android:background="@drawable/yellow_button_background"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@color/black"/>
现在,当我触摸按钮时,没有任何反应。我尝试了一个模拟器和真正的手机,但它们总是显示默认图形。单个图形本身可以正常工作,但不知何故,StateListDrawable XML无法按预期工作。
非常感谢任何帮助。
解决方案: 代码没问题,但是另一段代码禁用了该按钮。因此,无法点击它。
答案 0 :(得分:0)
问题既不是StateListDrawable也不是Layout。正如Luksprog指出的那样,该按钮从未收到过onClick事件,因为它已在代码中被禁用。愚蠢的我忘记了,重新启用按钮的事件从未在我当前的调试设置中触发。