SwitchCompat自定义Thumb与Track失效问题的排查与解决
解决SwitchCompat自定义thumb/track样式不生效问题
环境信息
- Android Studio版本:Flamingo 2022.2.1 Patch 2
- 测试模拟器:Android 33
问题现象
已编写thumb.xml、track.xml、thumbfalse.xml、thumbtrue.xml四个自定义样式文件,在main_activity.xml中为<androidx.appcompat.widget.SwitchCompat>配置app:thumb和app:track属性(尝试过改用android:前缀),但开关始终显示默认样式。替换为已废弃的<Switch>组件时,自定义样式可正常生效。
解决方法
问题根源是Material3主题默认会覆盖SwitchCompat的自定义布局,修改themes.xml中的主题父配置:
<!-- 原Material3主题 --> <style name="Theme.MyApp" parent="Theme.Material3.DayNight.NoActionBar"> <!-- 修改为AppCompat主题 --> <style name="Theme.MyApp" parent="Theme.AppCompat.DayNight.NoActionBar">
修改后,SwitchCompat的自定义thumb和track样式即可正常生效。
内容的提问来源于stack exchange,提问作者Sudo Sur
相关产品推荐
相关产品推荐

