Android切换小部件textOn和textOff不工作在Lollipop

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"
        />

当targetSdkVersion = 19时呈现开关:

当targetSdkVersion = 21时呈现开关:

请注意,Android Studio中的预览呈现仍会产生带有文字的开关,但当使用targetSdkVersion = 21构建的apk在具有Lollipop(Nexus 5)的设备上运行时,开关会丢失其文本。在同一个Lollipop设备上运行使用targetSdkVersion = 19构建的apk会按照预期正确显示文本。

为什么?任何建议的解决方法?

默认情况下,在材质主题下不显示文本,因为切换窗口小部件资产不能与文本一起使用。您设置的任何文本将用于描述无障碍服务的内容。

您可以使用android:showText属性或Switch.setShowText(boolean)方法更改此属性。

<Switch
    ...
    android:showText="true" />

如果您使用AppCompat开关,请改用app:showText。

http://stackoverflow.com/questions/27276054/android-switch-widget-texton-and-textoff-not-working-in-lollipop

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:Android切换小部件textOn和textOff不工作在Lollipop