重新创建类似于 Android 12 设置的开关
Recreate switches similar to Android 12 settings
Android 12 的设置开关现在看起来像这样,
它的代码在这里:
但是 androidx.preference.SwitchPreferenceCompat
和 androidx.preference.SwitchPreference
在我更新了 material 库(1.5.0,Material 3),
的应用程序中看起来都不像这样
我怎样才能至少在 Android 12 中拥有相同的外观(和感觉、动画等)开关,或者 Android 如何为自己做到这一点?谢谢!
您可以轻松自定义您的开关,使其看起来像这样。
在 styles.xml
中添加:
<style name="App.Switches" parent="Widget.Material3.CompoundButton.Switch">
<item name="track">@drawable/switch_track</item>
<item name="android:thumb">@drawable/switch_thumb</item>
</style>
switch_track.xml
:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="#000000" />
<corners android:radius="56dp" />
<size
android:width="64dp"
android:height="28dp" />
</shape>
</item>
</layer-list>
switch_thumb.xml
:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:bottom="4dp"
android:left="4dp"
android:right="4dp"
android:top="4dp">
<shape android:shape="oval">
<solid android:color="#000000" />
<size
android:width="20dp"
android:height="20dp" />
</shape>
</item>
</layer-list>
最后在您应用的主主题中添加这一行,以将此样式应用于您应用中的所有开关:
<item name="switchStyle">@style/App.Switches</item>
Android 12 的设置开关现在看起来像这样,
它的代码在这里:
但是 androidx.preference.SwitchPreferenceCompat
和 androidx.preference.SwitchPreference
在我更新了 material 库(1.5.0,Material 3),
我怎样才能至少在 Android 12 中拥有相同的外观(和感觉、动画等)开关,或者 Android 如何为自己做到这一点?谢谢!
您可以轻松自定义您的开关,使其看起来像这样。
在 styles.xml
中添加:
<style name="App.Switches" parent="Widget.Material3.CompoundButton.Switch">
<item name="track">@drawable/switch_track</item>
<item name="android:thumb">@drawable/switch_thumb</item>
</style>
switch_track.xml
:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="#000000" />
<corners android:radius="56dp" />
<size
android:width="64dp"
android:height="28dp" />
</shape>
</item>
</layer-list>
switch_thumb.xml
:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:bottom="4dp"
android:left="4dp"
android:right="4dp"
android:top="4dp">
<shape android:shape="oval">
<solid android:color="#000000" />
<size
android:width="20dp"
android:height="20dp" />
</shape>
</item>
</layer-list>
最后在您应用的主主题中添加这一行,以将此样式应用于您应用中的所有开关:
<item name="switchStyle">@style/App.Switches</item>