2012-09-12 20 views
7

Estoy tratando de agregar a mi lista de estado existente dibujable, un estado desactivado y simplemente no funciona.Statelist drawable android: state_enabled no funciona en xml

originalmente, tenía este código:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:drawable="@drawable/store_item_background_selected" android:state_selected="true"/> 
<item android:drawable="@drawable/store_item_background"/> 
</selector> 

y funcionó perfectamente para seleccionada y no seleccionada.

Ahora quería añadir el androide: state_enabled = "false" de esta manera:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:drawable="@drawable/store_item_background_selected" android:state_selected="true"/> 
<item android:drawable="@drawable/store_item_background" android:state_enabled="true"/> 
<item android:drawable="@drawable/store_item_background_disabled"/> 
</selector> 

y nunca cambia a la imagen desactivada.

¿Alguna idea?

EDITAR

que añade setEnabled(false) al constructor de la vista Soy la creación de este drwable statelist y ahora ver la imagen con discapacidad, pero una vez que me puse el fin de habilitado, no se cambia a desactivado de nuevo .

Respuesta

7

probar este

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

<item android:drawable="@drawable/store_item_background_selected" android:state_enabled="true" android:state_selected="true"/> 
<item android:drawable="@drawable/store_item_background" android:state_enabled="true"/> 
<item android:drawable="@drawable/store_item_background_disabled" android:state_enabled="false"/> 

</selector> 
+0

no hacer una diferencia. ver edición – piojo

+0

lo siento, error en mi código donde lo configuré como deshabilitado. – piojo

+0

mala respuesta. No explicó el trabajo NOR. – Vucko

15

Aunque se trata de una pregunta muy viejo. Activado debe escribir selector en consecuencia.

  1. estado deshabilitado segundo estado normal primera
  2. estado presionado
  3. última

+0

al cambiar el orden al instante solucionó mi problema. ¿Dónde encontraste esta información? –

+0

En algún lugar de google cuando estaba atascado durante horas en este mismo problema –

+0

tuve este problema durante mucho tiempo con este enfoque: StateListDrawable res = new StateListDrawable(); res.addState (new int [] {- ​​android.R.attr.state_enabled}, nuevo ColorDrawable (color)); res.addState (new int [] {android.R.attr.state_enabled, android.R.attr.state_pressed}, new ColorDrawable (color)); res.addState (new int [] {}, nuevo ColorDrawable (color)); Y esto funcionó de inmediato. Gracias. desear que se haya documentado en alguna parte ... – ClayHerendeen

Cuestiones relacionadas