0

我只是想創建一個自定義9-Patch按鈕。因此,這裏是我的本錢:StateListDrawable不顯示按下狀態

<?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沒有按預期工作。

任何幫助,非常感謝。

解決方案: 代碼沒問題,但按鈕被另一段代碼禁用。因此,它不能被點擊。

+2

你確定點擊事件是否觸發'Button'? – Luksprog

+0

您的代碼對於drawable看起來很好。請提供按鈕父容器佈局的完整代碼。 –

+0

Luksprog解決了這個謎團!出於安全目的,這些按鈕被禁用,直到建立服務器連接。在我目前的測試設置中,服務器不可用。衛生署!非常感謝你指出了這種可能性。 :-) – Chris

回答

0

該問題既不是StateListDrawable也不是佈局。正如Luksprog指出的那樣,該按鈕從未收到過onClick事件,因爲它已在代碼中禁用。傻我忘記了,重新啓用按鈕的事件從未在我當前的調試設置中觸發。

相關問題