Android中Material 3 MaterialSwitch默认尺寸过大,如何缩小?
缩小Material3 MaterialSwitch尺寸的几种方法
1. 直接在布局中自定义滑块与轨道尺寸
Material3的MaterialSwitch提供了专门的属性来控制核心组件大小,你可以直接在XML中设置app:thumbSize(滑块尺寸)、app:trackWidth(轨道宽度)、app:trackHeight(轨道高度)来精准缩小控件:
<com.google.android.material.materialswitch.MaterialSwitch android:id="@+id/biometrics_switch" style="@style/Widget.Material3.CompoundButton.MaterialSwitch" android:layout_width="wrap_content" android:layout_height="wrap_content" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent" app:switchPadding="@dimen/_10sdp" android:minHeight="@dimen/_10sdp" app:thumbTint="@color/white" app:trackTint="@color/neutral_800" <!-- 自定义尺寸参数,可根据需求调整 --> app:thumbSize="@dimen/_16sdp" app:trackWidth="@dimen/_32sdp" app:trackHeight="@dimen/_12sdp" />
2. 全局自定义Style(适合多页面复用)
如果需要在多个页面统一使用缩小版的开关,可在styles.xml中继承Material3的开关样式,重写尺寸属性:
<style name="CustomSmallMaterialSwitch" parent="Widget.Material3.CompoundButton.MaterialSwitch"> <item name="thumbSize">16dp</item> <item name="trackWidth">32dp</item> <item name="trackHeight">12dp</item> <item name="switchPadding">8dp</item> <!-- 可同步调整开关与文字的间距 --> </style>
之后在布局中直接引用该Style即可:
<com.google.android.material.materialswitch.MaterialSwitch ... style="@style/CustomSmallMaterialSwitch" ... />
3. 应急缩放(不推荐)
如果不想修改属性,可通过scaleX/scaleY整体缩放控件,但此方法可能导致点击区域与视觉区域错位、控件模糊,仅建议临时应急使用:
<com.google.android.material.materialswitch.MaterialSwitch ... android:scaleX="0.8" android:scaleY="0.8" ... />
内容的提问来源于stack exchange,提问作者Aditya Nandardhane
相关产品推荐
相关产品推荐

