2015-01-18 4 views
1

내 활동의 작업 표시 줄 (v7.Toolbar)에 SwitchCompat가 있습니다. 나는 그것이 착색되기를 원한다. 착색 될 때 구조와 착색 될 때 향한다. Lollipop 이전에는 잘 작동하지만 Lollipop에서는 활성화 된 스위치가 어디에도 정의되지 않은 색상으로 그려져 있습니다. "material_deep_teal_200"처럼 보입니다.Lollipop의 SwitchCompat 색상

<?xml version="1.0" encoding="utf-8"?> 
 
<resources> 
 
\t <style name="Theme.Default" parent="Theme.AppCompat.Light.NoActionBar"> 
 
\t \t <item name="colorPrimary">@color/colorPrimary</item> 
 
\t \t <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
 
\t \t <item name="colorAccent">@color/colorAccent</item> 
 
\t \t <!--<item name="android:windowNoTitle">true</item>--> 
 
\t \t <item name="windowActionBar">false</item> 
 
\t \t <item name="colorSwitchThumbNormal">@color/colorStructure</item> 
 
\t \t <item name="colorControlNormal">@color/colorPrimary</item> 
 
\t \t <item name="colorControlActivated">@color/colorAccent</item> 
 
\t \t <item name="colorControlHighlight">@color/colorAccent</item> 
 
\t \t <!--<item name="selectBarStyle">@style/DefaultSelectBar</item>--> 
 
\t </style> 
 
</resources>

그리고이 활동 XML을 시작하는 것 : 내 유일한 스타일 정의 그게

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
 
       xmlns:tools="http://schemas.android.com/tools" 
 
       xmlns:app="http://schemas.android.com/apk/res-auto" 
 
       android:layout_width="match_parent" 
 
       android:layout_height="match_parent" 
 
       android:orientation="vertical" 
 
\t > 
 

 
\t <android.support.v7.widget.Toolbar 
 
\t \t android:id="@+id/toolbar" 
 
\t \t android:layout_height="wrap_content" 
 
\t \t android:layout_width="match_parent" 
 
\t \t app:theme="@style/Widget.AppCompat.Toolbar" 
 
\t \t app:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
 
\t \t android:background="@color/colorPrimary" 
 
\t \t android:paddingRight="@dimen/abc_dropdownitem_text_padding_right"> 
 

 
\t \t <FrameLayout 
 
\t \t \t android:layout_width="match_parent" 
 
\t \t \t android:layout_height="wrap_content" 
 
\t \t \t android:paddingRight="@dimen/abc_action_bar_icon_vertical_padding_material"> 
 

 
\t \t \t <ImageButton 
 
\t \t \t \t android:layout_width="wrap_content" 
 
\t \t \t \t android:layout_height="wrap_content" 
 
\t \t \t \t android:id="@+id/helpButton" 
 
\t \t \t \t android:src="@drawable/ic_help_large" 
 
\t \t \t \t android:background="#00000000" 
 
\t \t \t \t android:layout_gravity="center"/> 
 

 
\t \t \t <android.support.v7.widget.SwitchCompat 
 
\t \t \t \t android:layout_width="wrap_content" 
 
\t \t \t \t android:layout_height="wrap_content" 
 
\t \t \t \t android:id="@+id/master_switch" 
 
\t \t \t \t android:clickable="true" 
 
\t \t \t \t android:checked="true" 
 
\t \t \t \t android:gravity="center" 
 
\t \t \t \t android:layout_gravity="right" 
 
\t \t \t \t /> 
 

 
\t \t </FrameLayout> 
 

 
\t \t </android.support.v7.widget.Toolbar>

그래서하게 변경해야 할 것 스위치는 KitKat과 Lollipop에서 동일한 맞춤 색상을 사용합니까?

감사합니다.

+0

값 - 20 값 -v21 폴더에 스타일을 추가 했습니까? – Abdellah

답변

0

실제로 위에 표시된 코드는 Lollipop에서도 잘 작동합니다. 문제가되는 코드를 정리 한 후 유효성 검사 중에 실수를 저질렀어야합니다.

원래 문제는 값 -v21의 구성이있는 경우였습니다. 오타가 있거나 기본 xml 파일로 모든 것을 단순화 할 때 잃어 버렸던 것과 같은 것이 있다고 가정합니다.

즉, 제시된 코드가 작동하며 값이 -v21 인 구성으로 문제가 발생하지 않는다고 가정합니다.