Android Switch widget textOn y textOff no funcionan en Lollipop
El comportamiento del widget de conmutador cambió en Lollipop (5.0).
<Switch android:id="@+id/switcher" android:layout_width="wrap_content" android:layout_height="0dp" android:layout_marginBottom="16dp" android:layout_marginRight="8dp" android:layout_marginEnd="8dp" android:layout_toEndOf="@id/another_view" android:layout_toRightOf="@id/another_view" android:layout_alignParentRight="true" android:layout_alignParentEnd="true" android:layout_alignParentBottom="true" android:textOff="@string/disabled" android:textOn="@string/enabled" android:fontFamily="sans-serif-condensed" />
Rendered switch when targetSdkVersion = 19:
Rendered switch when targetSdkVersion = 21:
Tenga en cuenta que la renderización de vista previa en Android Studio todavía produce un cambio con texto, pero el switch pierde su texto cuando un apk construido con targetSdkVersion = 21 se ejecuta en un dispositivo con Lollipop (Nexus 5). Ejecutar un apk construido con targetSdkVersion = 19 en el mismo dispositivo Lollipop rinde el switch correctamente con texto como se esperaba.
¿Por qué? ¿Sugerencias posibles?
El texto no se muestra de forma predeterminada en el tema Material, ya que los elementos del widget de conmutación no funcionan bien con el texto. Cualquier texto que se establezca se utilizará para describir el contenido a los servicios de accesibilidad.
Puede cambiar esto usando la propiedad android:showText
o Switch.setShowText(boolean)
.
<Switch ... android:showText="true" />
Si utiliza conmutadores AppCompat, utilice app:showText
.