0

我只是想创建一个自定义的 9-Patch 按钮。所以这就是我所拥有的:

<?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>

带有各自的图像:(Yellow_button_background_default默认),Yellow_button_background_pressed(按下)

和布局

<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 无法按预期工作。

很感谢任何形式的帮助。

解决方案: 代码没问题,但是按钮被另一段代码禁用。因此,无法单击它。

4

1 回答 1

0

问题既不是 StateListDrawable 也不是 Layout。正如 Luksprog 指出的那样,该按钮从未收到 onClick 事件,因为它已在代码中被禁用。愚蠢的我忘记了,在我当前的调试设置中从未触发重新启用按钮的事件。

于 2012-12-10T14:59:20.757 回答