动态更改 SwitchMaterial 颜色
Change SwitchMaterial color dinamicaly
在我的应用程序中,第一个 activity 是 select 或者我可以 select 在 3 个按钮之间:红色、绿色、黄色。当我 select 一个按钮时,会显示一个新的 activity 和一个 SwitchMaterial。现在我想更改 colorControlActivated,如果我有 selected 红色按钮,开关颜色为红色,绿色按钮为绿色等等。我该怎么做?
<com.google.android.material.switchmaterial.SwitchMaterial
android:id="@+id/profile_setting_switch1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="20dp"
android:theme="@style/SwitchTecnoTheme"
app:layout_constraintBottom_toBottomOf="@id/profile_setting_1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/profile_setting_1" />
<style name="SwitchTecnoTheme" >
<item name="colorControlActivated">@color/tecno_brand_color</item>
</style>
您可以定义 3 个不同的选择器并使用类似的东西:
switch.isUseMaterialThemeColors = false
switch.thumbTintList = ContextCompat.getColorStateList(this,R.color.thumb_selector)
switch.trackTintList = ContextCompat.getColorStateList(this, R.color.track_selector)
其中 thumb_selector
:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="false" android:color="@color/switchTrackDisable"/>
<item android:state_checked="true" android:color="@color/switchThumbActive" />
<item android:color="@color/switchThumbkNormal" />
</selector>
和track_selector
:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="false" android:color="@color/switchTrackDisable"/>
<item android:state_checked="true" android:color="@color/switchTrackActive" />
<item android:color="@color/switchTrackNormal" />
</selector>
在我的应用程序中,第一个 activity 是 select 或者我可以 select 在 3 个按钮之间:红色、绿色、黄色。当我 select 一个按钮时,会显示一个新的 activity 和一个 SwitchMaterial。现在我想更改 colorControlActivated,如果我有 selected 红色按钮,开关颜色为红色,绿色按钮为绿色等等。我该怎么做?
<com.google.android.material.switchmaterial.SwitchMaterial
android:id="@+id/profile_setting_switch1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="20dp"
android:theme="@style/SwitchTecnoTheme"
app:layout_constraintBottom_toBottomOf="@id/profile_setting_1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/profile_setting_1" />
<style name="SwitchTecnoTheme" >
<item name="colorControlActivated">@color/tecno_brand_color</item>
</style>
您可以定义 3 个不同的选择器并使用类似的东西:
switch.isUseMaterialThemeColors = false
switch.thumbTintList = ContextCompat.getColorStateList(this,R.color.thumb_selector)
switch.trackTintList = ContextCompat.getColorStateList(this, R.color.track_selector)
其中 thumb_selector
:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="false" android:color="@color/switchTrackDisable"/>
<item android:state_checked="true" android:color="@color/switchThumbActive" />
<item android:color="@color/switchThumbkNormal" />
</selector>
和track_selector
:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="false" android:color="@color/switchTrackDisable"/>
<item android:state_checked="true" android:color="@color/switchTrackActive" />
<item android:color="@color/switchTrackNormal" />
</selector>