Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


El estilo no se aplica en la casilla de verificación personalizada y el botón de radio

Estoy desarrollando la caja de cheque y el botón de opción de encargo pero el estilo no está aplicando para ambos en dispositivos del pre lollipop (que muestra el color negro en lugar de otro). He codificado así:

XML:

<com.kaho.myapp.CustomCheckBox android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="CheckBoxText" android:textColor="@color/colorPrimary" android:theme="@style/SampleTheme"/> 

Casilla de verificación personalizada:

 public class CustomCheckBox extends CheckBox { public CustomCheckBox(Context context) { super(context); } public CustomCheckBox(Context context, AttributeSet attrs) { super(context, attrs); setFont(context, attrs) ; } public CustomCheckBox(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); setFont(context,attrs) ; } public CustomCheckBox(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); setFont(context, attrs) ; } private void setFont(Context context, AttributeSet attrs) { if (attrs != null) { /* Set the font */ } } } 

Fuente en la configuración correcta. Estilo:

 <style name="SampleTheme" parent="Theme.AppCompat.Light"> <item name="colorAccent">#08c283</item> <item name="android:textColorSecondary">#969696</item> </style> 

  • Actionbarsherlock - cambia el color de la línea de acción
  • ¿Cómo utilizar el tema de Holo.Light, y caer de nuevo a 'Light' en los dispositivos pre-panal?
  • Cómo sustituir estilos de una biblioteca que tiene su propia actividad
  • Cómo cambiar el tema del menú en Android
  • Android 5.0: cómo cambiar Visión general Tarea Título color de fondo
  • Causado por: java.lang.UnsupportedOperationException: No se puede convertir a dimension: type = 0x1
  • ¿Cuál es la diferencia entre styles.xml y themes.xml
  • Definir el estilo TabLayout en el tema
  • 2 Solutions collect form web for “El estilo no se aplica en la casilla de verificación personalizada y el botón de radio”

    Tiene este problema porque los dispositivos pre-Lollipop no tienen la posibilidad de establecer un colorAccent de forma predeterminada. Para obtener un comportamiento como este, amplíe su vista desde la vista de soporte correspondiente. Habría algo como esto:

     public class CustomCheckBox extends AppCompatCheckBox public class CustomRadioButton extends AppCompatRadioButton 

    De esta forma, sus vistas tendrán el estilo de diseño material en los dispositivos pre Lollipop.

    Echa un vistazo a la CheckBox personalizado que funciona muy bien para toda la versión pre / post lollipop.

    CustomCheckBox.java:

     public class CustomCheckBox extends CheckedTextView { private Drawable btnDrawable; public CustomCheckBox(Context context) { this(context, null); } public CustomCheckBox(Context context, AttributeSet attrs) { this(context, attrs, 0); } public CustomCheckBox(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); colorAccordingToTheme(); } @Override public void setCheckMarkDrawable(Drawable d) { super.setCheckMarkDrawable(d); btnDrawable = d; } @Override public void toggle() { super.toggle(); colorAccordingToTheme(); } @Override public void setChecked(boolean checked) { super.setChecked(checked); colorAccordingToTheme(); } private void colorAccordingToTheme() { if (btnDrawable != null) { btnDrawable.setColorFilter(yourColor, PorterDuff.Mode.SRC_IN); } } } 

    En el diseño xml:

     <?xml version="1.0" encoding="utf-8"?> <com.yourpaackcge.CustomCheckBox xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/cb" android:layout_width="match_parent" android:layout_height="match_parent" android:checkMark="@drawable/selector_check_box" android:gravity="center|left" android:paddingRight="24dp" android:paddingLeft="24dp" android:background="@drawable/ripple"/> 

    Mi selector:

     <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/ic_check_box_on" android:state_pressed="true"/> <item android:drawable="@drawable/ic_check_box_on" android:state_checked="true"/> <item android:drawable="@drawable/ic_check_box_off"/> </selector> 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.