2

Я разрабатываю приложение, в котором я использую флажок и применяемый селектор. Мой код флажком выглядит следующим образом:Android: переключатель селектора не работает должным образом

<CheckBox 
    android:id="@+id/checkBox" 
    android:layout_width="0dp" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    android:layout_weight="0.5" 
    android:button="@drawable/custom_checkbox" 
    android:clickable="false" 
    android:focusable="false" 
    android:gravity="center" /> 

custom_checkbox.xml

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

    <item android:drawable="@drawable/checkbox_checked" android:state_checked="true"/> 
    <item android:drawable="@drawable/checkbox_checked" android:state_pressed="true"/> 
    <item android:drawable="@drawable/checkbox_unchecked"/> 

</selector> 

checkbox_checked

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

<item android:drawable="@drawable/green_tic"/> 
    <item> 
     <shape android:shape="rectangle" > 
      <corners android:radius="@dimen/corner_radius_for_ask_option"/> 
      <size 
       android:height="20dp" 
       android:width="20dp" /> 
     </shape> 
    </item> 

</layer-list> 

checkbox_unchecked

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

    <item> 
     <shape android:shape="rectangle" > 
      <stroke 
       android:width="2px" 
       android:color="@color/color_light_grey" /> 

      <corners android:radius="@dimen/corner_radius_for_ask_option" /> 

      <size 
       android:height="20dp" 
       android:width="20dp" /> 
     </shape> 
    </item> 

</layer-list> 

Приведенный выше код отлично работает на примечании 3 и такого же телефона. Это выглядит следующим образом:

uncheckchecked

Но на самсунг s2 это выглядит следующим образом:

uncheckchecked

+0

Похоже, это [общая проблема] (http://stackoverflow.com/questions/3965484/custom-checkbox-image-android). 'android: button' и' android: drawable' кажутся кандидатами. Что произойдет, если вы перейдете на 'android: drawable ='? – dhke

+0

Фактический цвет фона по умолчанию зависит от устройства и устройства. А также попробуйте добавить проверенный ложный атрибут с помощью строки неконтролируемого объекта –

ответ

3

Попробуйте добавить прозрачный твердый для ваших форм:

<shape android:shape="rectangle" > 
    <corners android:radius="@dimen/corner_radius_for_ask_option"/> 
    <size 
     android:height="20dp" 
     android:width="20dp" /> 
    <solid android:color="@android:color/transparent"/> 
</shape> 

То же самое для другой доступный XML.