2016-04-19 5 views
0

ich benutzerdefinierte ziehbar der Checkbox-Taste am Einstellung
Aber nur android:state_checked="true" und android:state_checked="false" zu funktionieren scheint.
Andere Zustände funktionieren nicht.Benutzerdefinierte Taste ziehbar state_pressed und state_checked arbeiten nicht auf CheckBox oder Radiobutton - Android

Ich kann keine benutzerdefinierten Zeichen im gedrückten Zustand festlegen.

Dies ist der Selektor ich verwende:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_checked="true" android:drawable="@drawable/radio_btn_selected" /> 
    <item android:state_checked="false" android:drawable="@drawable/radio_btn_normal" /> 
    <item android:state_pressed="true" android:drawable="@drawable/radio_btn_pressed" /> 
    <item android:state_focused="true" android:drawable="@drawable/radio_btn_pressed" /> 
    <item android:drawable="@drawable/radio_btn_normal"/> <!-- default --> 
</selector> 

Dies ist, wie ich es Radioknopf bin Einstellung:

radioButton.setButtonDrawable(R.drawable.radio_btn_selectors); 

Antwort

1

android:state_pressed="true" und android:state_focused="true" nicht funktionieren, weil die Reihenfolge, in der Sie verschiedene Zustände deklariert haben. Wenn Sie einen Zeichensatz wie diesen deklarieren, wird das System von oben nach unten gehen und wenn ein Zustand übereinstimmt, sucht er nicht nach den anderen und wendet die Änderungen basierend auf der allerersten Auswahl an. Ich denke hier android:state_checked="false" Bedingung könnte statt android:state_pressed="true" und android:state_focused="true" ausgeführt werden. Also gehe android:state_checked="false" nach unten und versuche es dann.