2014-12-03 3 views
40

Lollipop (5.0)에서 스위치 위젯의 동작이 변경되었습니다.Android 스위치 위젯 Lollipop에서 작동하지 않는 textOn 및 textOff

<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

렌더링 스위치 :

enter image description here

렌더링 스위치가 targetSdkVersion을 = 21 : 안드로이드 Studio에서 렌더링 미리 볼

enter image description here

참고 여전히 스위치를 생산 텍스트로 표시되지만 targetSdkVersion = 21로 빌드 된 apk가 ru 인 경우 스위치가 텍스트를 잃습니다 Lollipop (Nexus 5)이 설치된 기기의 경우 동일한 Lollipop 기기에서 targetSdkVersion = 19로 빌드 된 apk를 실행하면 텍스트가 올바르게 표시됩니다.

왜? 제안 된 해결 방법은 무엇입니까?

답변

98

전환 위젯 애셋이 텍스트와 잘 작동하지 않기 때문에 텍스트는 기본적으로 재질 테마 아래에 표시되지 않습니다. 사용자가 설정 한 텍스트는 내게 필요한 옵션 서비스에 대한 내용을 설명하는 데 사용됩니다.

android:showText 속성 또는 Switch.setShowText(boolean) 메서드를 사용하여 변경할 수 있습니다.

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

AppCompat 스위치를 사용하는 경우 대신 app:showText을 사용하십시오.

+0

고마워.이 또한 나를 도왔다. – Kitalda

+0

이 속성은 실제로 API 레벨 21부터 지원됩니다. – manfcas

+0

N-Preview3 장치에서 실행중인 23.4.0을 사용하면 더 이상 작동하지 않는 것 같습니다. 편집 : 'app : showText = "true"'이어야합니다. – behelit

관련 문제