2012-05-24 14 views
5

he definido un rectángulo dibujable así:rectángulo de forma estirable no se mostrará el elemento selector de casilla

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 

    <corners android:radius="4dip"/> 
    <solid android:color="#FF000000" /> 
    <stroke android:width="1dip" android:color="@color/service_checkbox_disabled_unchecked_stroke" /> 

</shape> 

puedo mostrar la drawble como imageView sin problemas. Sin embargo, se supone que es un drawble para un estado de una casilla de verificación. Mi selector para el botón de casilla se define así:

<selector xmlns:android="http://schemas.android.com/apk/res/android" > 

    <item android:state_checked="true" android:drawable="@drawable/bg_services_tick_unchecked_disabled" /> 
    <item android:state_checked="false" android:drawable="@drawable/bg_services_tick_unchecked_disabled" /> 

</selector> 

Y por último, mi casilla:

<CheckBox 
    android:id="@+id/cb_tariff_3_next_month_checkbox" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:button="@drawable/checkbox_services" 
    android:layout_centerHorizontal="true"/> 

Puede alguien decir, ¿por qué no funciona? Muchas gracias.

+0

Por favor acepte la respuesta a continuación. Este es un poco inusual conocimiento y merece reconocimiento. (No soy el póster). –

Respuesta

10

Debe añadir un nodo tamaño a la forma:

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle" 
    > 
    <size android:width="30dp" android:height="30dp" /> 
    <solid android:color="@color/blueBase"/> 
    <stroke 
     android:width="1dp" 
     android:color="@color/blueDark" /> 
</shape> 
+0

Gracias. Me hubiera llevado una eternidad resolver esto. –

+0

Me salvaste el día. –

+0

¡Haga eso dos en un día! Me estaba volviendo loco intentar entender por qué funciona bien con un archivo dibujable pero no XML. – SVM

Cuestiones relacionadas