Unable to change switch color
Probably, you can try using android.support.v7.widget.SwitchCompat
instead of Switch
and android:theme=@style/SwitchStyle
instead of style="@style/SwitchStyle"
You're mixing styles and themes together.
These attributes are theme attributes so define them together in a theme overlay:
res/values/styles.xml (not values-v21)
<style name="ThemeOverlay.MySwitch" parent="">
<item name="android:colorControlActivated">@color/switch_color</item>
<item name="android:colorSwitchThumbNormal">#f1f1f1</item>
<item name="android:colorForeground">#42221f1f</item>
</style>
<style name="ThemeOverlay.MySwitchCompat" parent="">
<item name="colorControlActivated">@color/switch_color</item>
<item name="colorSwitchThumbNormal">#f1f1f1</item>
<item name="android:colorForeground">#42221f1f</item>
</style>
And then apply this theme overlay on the switch:
res/layout/layout.xml
<Switch
android:theme="@style/ThemeOverlay.MySwitch"/>
<androidx.appcompat.widget.SwitchCompat
android:theme="@style/ThemeOverlay.MySwitchCompat"/>
Pick one of the two variants:
Switch
available since API 21, all theme attributes are prefixed withandroid:
SwitchCompat
available in AndroidX AppCompat library, some theme attributes are not prefixed (make sure you know which).