1

I have a SwitchCompat in the action bar (v7.Toolbar) of my activity. I want it be colorStructure when off and colorAccent when on. It works fine on pre-Lollipop, but on Lollipop the activated switch is drawn in a color which I did not define anywhere. It looks like "material_deep_teal_200". Thats my only style definitions:

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

And that's the begin of the activity 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"
 >

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

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

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

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

  </FrameLayout>

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

So what do I need to change to make the switch have the same custom colors on KitKat and Lollipop?

Thanks

user2583621
  • 165
  • 12

1 Answers1

0

Actually the code as presented above works fine - also on Lollipop. I must have done a mistake during validation after cleaning up the problematic code.

Originally the problem was when I also had a configuration in values-v21. I assume that there was a typo or something like that which got lost when I was simplifying all into the default xml file.

So in short, the code as presented works, and I assume that having configurations in values-v21 would not cause a problem either.

user2583621
  • 165
  • 12