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"
/>
Run Code Online (Sandbox Code Playgroud)
targetSdkVersion = 19时渲染切换:

targetSdkVersion = 21时渲染切换:

请注意,Android Studio中的预览渲染仍会生成带文本的开关,但是当使用Lollipop(Nexus 5)在设备上运行使用targetSdkVersion = 21构建的apk时,开关会丢失文本.在同一个Lollipop设备上运行使用targetSdkVersion = 19构建的apk,可以按预期正确显示开关.
为什么?任何建议的解决方法?