Как применить собственный стиль ко всем переключателям с помощью атрибута switchStyle
Я знаю, что мы можем просто достичь этого, используя colorControl
атрибуты и применить стиль, используя theme
атрибут в представлении. Например,
<style name="MySwitch">
<item name="colorControlNormal">@color/grey</item>
<item name="colorControlActiviated">@color/primaryColor</item>
</style>
<Switch
...
app:theme="@style/MySwitch"/>
Но в этом случае мы должны применить theme
Атрибут для всех переключателей в деятельности или в приложении. Вместо этого я хочу применить это ко всей теме приложения. Итак, я пытался добиться того же, используя эти способы, но ничего из этого не сработало.
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/primaryColor</item>
<item name="colorPrimaryDark">@color/primaryDarkColor</item>
<item name="colorAccent">@color/secondaryColor</item>
<item name="switchStyle">@style/MySwitch</item>
</style>
Способ 1:
<style name="MySwitch" parent="Widget.AppCompat.CompoundButton.Switch">
<item name="buttonTint">@color/primaryColor</item>
</style>
switch_thumb:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/primaryColor" android:state_checked="true" />
<item android:color="@android:color/darker_gray" />
</selector>
switch_track:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/primaryLightColor" android:state_checked="true" />
<item android:color="@android:color/darker_gray" />
</selector>
Способ 2:
<style name="MySwitch" parent="Widget.AppCompat.CompoundButton.Switch">
<item name="thumbTint">@drawable/switch_thumb</item>
<item name="trackTint">@drawable/switch_track</item>
</style>
Способ 3:
<style name="MySwitch" parent="Widget.AppCompat.CompoundButton.Switch">
<item name="thumb">@drawable/switch_thumb</item>
<item name="track">@drawable/switch_track</item>
</style>
Я пытался найти другие решения, но они не содержат информацию о применении стиля ко всей теме, как я хочу.