You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 14:07:10