开关

  • 更新时间:2026-03-15 10:39:06

开关-switch

原生类型:{com.google.android.material.materialswitch.MaterialSwitch}

开关:顾名思义,就是开关的意思,只有打开或者关闭两种状态。

一、常用属性

主题颜色 - 主题颜色

设置主题颜色

<界面>
    <状态条 />
    <线性布局="最大" 方向="横向">
        <开关 主题颜色="#57965C" 外边距="5" 文本="吃饭" />
        <开关 主题颜色="#C94F4F" 外边距="5" 文本="睡觉" />
        <开关 主题颜色="#3574F0" 外边距="5" 文本="游戏" />
    </线性布局>
    <线性布局="最大" 方向="横向">
        <开关 主题颜色="#57965C" 外边距="5" 文本="吃饭" 选中="是" />
        <开关 主题颜色="#C94F4F" 外边距="5" 文本="睡觉" 选中="是" />
        <开关 主题颜色="#3574F0" 外边距="5" 文本="游戏" 选中="是" />
    </线性布局>
</界面>

文本 - 文本

设置文本

<界面>
    <状态条 />
    <开关="最大" 文本="我是文本" />
</界面>

文本尺寸 - 文本尺寸

设置文本尺寸

<界面>
    <状态条 />
    <开关="最大" 文本="我的尺寸:10" 文本尺寸="10" />
    <开关="最大" 文本="我的尺寸:17" 文本尺寸="17" />
</界面>

文本颜色 - 文本颜色

设置文本颜色

<界面>
    <状态条 />
    <开关="最大" 文本="看我颜色" 文本颜色="#C94F4F" />
    <开关="最大" 文本="看我颜色" 文本颜色="#3574F0" />
</界面>

选中 - 是否选中

设置是否选中

<界面>
    <状态条 />
    <开关="最大" 文本="没选择" 选中="否" />
    <开关="最大" 文本="选中" 选中="是" />
</界面>

最小宽度 - 最小宽度

设置最小宽度

<界面>
    <状态条 />
    <线性布局="最大" 方向="竖向">
        <!--为了看清效果,这里设置背景颜色-->
        <开关 外边距="5" 文本="最小宽度:200" 最小宽度="200" 背景颜色="#57965C" />
        <开关 外边距="5" 文本="最小宽度:250" 最小宽度="250" 背景颜色="#C94F4F" />
    </线性布局>
</界面>

最小高度 - 最小高度

设置最小高度

<界面>
    <状态条 />
    <线性布局="最大" 方向="横向">
        <!--为了看清效果,这里设置背景颜色-->
        <开关 外边距="5" 文本="最小高度:60" 最小高度="60" 背景颜色="#57965C" />
        <开关 外边距="5" 文本="最小高度:80" 最小高度="80" 背景颜色="#C94F4F" />
    </线性布局>
</界面>

内边距 - 内边距

设置内边距

参数顺序:左,上,右,下(单位:dp)

<界面>
    <状态条 />
    <线性布局="最大" 方向="竖向">
        <!--为了看清效果,这里设置背景颜色-->
        <开关 内边距="10" 外边距="5" 文本="内边距:10" 背景颜色="#57965C" />
        <开关 内边距="20" 外边距="5" 文本="内边距:20" 背景颜色="#C94F4F" />
    </线性布局>
</界面>

重力 - 重力

设置重力

可选值参考重力参数表

<界面>
    <状态条 />
    <线性布局="最大" 方向="竖向">
        <开关 外边距="5"="最大" 文本="开始" 重力="start" />
        <开关 外边距="5"="最大" 文本="中间" 重力="中间" />
        <开关 外边距="5"="最大" 文本="结束" 重力="end" />
    </线性布局>
</界面>

背景颜色 - 背景颜色

设置背景颜色

<界面>
    <状态条 />
    <线性布局="最大" 方向="横向">
        <开关 外边距="5" 文本="吃饭" 背景颜色="#57965C" />
        <开关 外边距="5" 文本="睡觉" 背景颜色="#C94F4F" />
        <开关 外边距="5" 文本="游戏" 背景颜色="#3574F0" />
    </线性布局>
</界面>

背景图片 - 背景图片

设置背景图片

<界面>
    <状态条 />
    <线性布局="最大" 方向="竖向">
        <!--
        文本颜色="背景" 是一种动态设置文本颜色的方式,表示当前字体颜色是背景颜色。
        -->
        <开关 外边距="2"="250" 文本="吃饭" 文本颜色="背景"
            背景图片="example/$ui - 交互界面/03.check-复选框/img/bg01.png" />
        <开关 外边距="2"="250" 文本="睡觉" 文本颜色="背景"
            背景图片="example/$ui - 交互界面/03.check-复选框/img/bg02.png" />
        <开关 外边距="2"="250" 文本="游戏" 文本颜色="背景"
            背景图片="example/$ui - 交互界面/03.check-复选框/img/bg03.png" />
    </线性布局>
</界面>

二、常用函数

设置选中(状态)

设置选中状态

  • 参数 : 状态 {boolean} 是否选中
//解析布局,获得界面对象
定义 界面 = $界面.解析布局("./资源/主界面.xml");
//获取控件
定义 开关 = 界面.找控件("我的开关");
//设置选中状态
开关.设置选中(是);

是选中的()

判断选中状态

  • 返回 : {布尔值} 是否选中
  • 版本 : 1.8.2
//解析布局,获得界面对象
定义 界面 = $界面.解析布局("./资源/主界面.xml");
//获取控件
定义 开关 = 界面.找控件("我的开关");
//判断选中状态
如果(开关.是选中的()){
    日志("选中了");
}

监听选中(回调)

监听状态改变

  • 参数 : 回调 ((是否选中)=>{}) 回调函数
//解析布局,获得界面对象
定义 界面 = $界面.解析布局("./资源/主界面.xml");
//获取控件
定义 开关 = 界面.找控件("我的开关");
//监听状态改变
开关.监听选中((是否选中)=>{
    //..
});

设置重力(重力)

设置重力

  • 参数 : 重力 {String} 例如:"中|下"
//解析布局,获得界面对象
定义 界面 = $界面.解析布局("./资源/主界面.xml");
//获取控件
定义 开关 = 界面.找控件("我的开关");
//设置重力
开关.设置重力("中|下");

设置文本(文本)

设置文本

  • 参数 : 文本 {String} 文本内容
//解析布局,获得界面对象
定义 界面 = $界面.解析布局("./资源/主界面.xml");
//获取控件
定义 开关 = 界面.找控件("我的开关");
//设置文本
开关.设置文本("是否开启");

获取文本()

获取文本

  • 返回 : {String} 文本内容
//解析布局,获得界面对象
定义 界面 = $界面.解析布局("./资源/主界面.xml");
//获取控件
定义 开关 = 界面.找控件("我的开关");
//获得文本
定义 文本 = 开关.获取文本();

设置主题颜色(颜色)

设置主题颜色

  • 参数 : 颜色 {String} 颜色值
//解析布局,获得界面对象
定义 界面 = $界面.解析布局("./资源/主界面.xml");
//获取控件
定义 开关 = 界面.找控件("我的开关");
//设置主题颜色
开关.设置主题颜色("#26282E");

设置文本颜色(颜色)

设置文本颜色

  • 参数 : 颜色 {String} 颜色值
//解析布局,获得界面对象
定义 界面 = $界面.解析布局("./资源/主界面.xml");
//获取控件
定义 开关 = 界面.找控件("我的开关");
//设置文本颜色
开关.设置文本颜色("#26282E");