单选按钮

  • 更新时间:2026-06-15 07:53:04

单选按钮-radio

原生类型:{com.google.android.material.radiobutton.MaterialRadioButton}

单选按钮:一般需要配合单选按钮组(radio-group)的配合才能实现互相排斥的效果,这个控件常用在只需要在多个选择中选择一个的情况。

一、常用属性

主题颜色 - 主题颜色

设置主题颜色

<界面>
    <状态条 />
    <单选按钮组="最大" 方向="横向">
        <单选按钮 主题颜色="#3574F0" 文本="吃饭" />
        <单选按钮 主题颜色="#518855" 文本="睡觉" />
        <单选按钮 主题颜色="#B44A4A" 文本="游戏" />
    </单选按钮组>
</界面>

选中 - 选中状态

设置选中状态

<界面>
    <状态条 />
    <单选按钮组="最大" 方向="横向">
        <单选按钮 主题颜色="#3574F0" 文本="吃饭" />
        <单选按钮 主题颜色="#518855" 文本="睡觉" 选中="是" />
        <单选按钮 主题颜色="#B44A4A" 文本="游戏" />
    </单选按钮组>
</界面>

文本 - 文本

设置文本

<界面>
    <状态条 />
    <单选按钮组="最大" 方向="横向">
        <单选按钮 主题颜色="#3574F0" 文本="我是文本1" />
        <单选按钮 主题颜色="#518855" 文本="我是文本2" />
    </单选按钮组>
</界面>

文本颜色 - 文本颜色

设置文本颜色

<界面>
    <状态条 />
    <单选按钮组="最大" 方向="横向">
        <单选按钮 主题颜色="#3574F0" 文本="我是文本1" 文本颜色="#57965C" />
        <单选按钮 主题颜色="#518855" 文本="我是文本2" 文本颜色="#C94F4F" />
    </单选按钮组>
</界面>

最小宽度 - 最小宽度

设置最小宽度

<界面>
    <状态条 />
    <单选按钮组="最大" 方向="竖向">
        <单选按钮 文本="最小宽度:100" 最小宽度="100" 背景颜色="#57965C" />
        <单选按钮 文本="最小宽度:150" 最小宽度="150" 背景颜色="#3574F0" />
        <单选按钮 文本="最小宽度:200" 最小宽度="200" 背景颜色="#C94F4F" />
    </单选按钮组>
</界面>

最小高度 - 最小高度

设置最小高度

<界面>
    <状态条 />
    <单选按钮组="最大" 方向="横向">
        <单选按钮 文本="最小高度:50" 最小高度="50" 背景颜色="#57965C" />
        <单选按钮 文本="最小高度:60" 最小高度="60" 背景颜色="#3574F0" />
        <单选按钮 文本="最小高度:70" 最小高度="70" 背景颜色="#C94F4F" />
    </单选按钮组>
</界面>

内边距 - 内边距

设置内边距

<界面>
    <状态条 />
    <单选按钮组="最大" 方向="竖向">
        <单选按钮 内边距="10" 文本="内边距:10" 背景颜色="#57965C" />
        <单选按钮 内边距="20" 文本="内边距:20" 背景颜色="#3574F0" />
        <单选按钮 内边距="30" 文本="内边距:30" 背景颜色="#C94F4F" />
    </单选按钮组>
</界面>

重力 - 重力

设置重力

<界面>
    <状态条 />
    <!--将宽度设置到最大才能看到效果-->
    <单选按钮组="最大" 方向="竖向">
        <单选按钮="最大" 文本="开始" 重力="开始" />
        <单选按钮="最大" 文本="中间" 重力="中间" />
        <单选按钮="最大" 文本="结束" 重力="结束" />
    </单选按钮组>
</界面>

背景颜色 - 背景颜色

设置背景颜色

<界面>
    <状态条 />
    <单选按钮组="最大" 方向="竖向">
        <单选按钮 文本="看我背景颜色" 背景颜色="#57965C" />
        <单选按钮 文本="看我背景颜色" 背景颜色="#3574F0" />
    </单选按钮组>
</界面>

背景图片 - 背景图片

设置背景图片

<界面>
    <状态条 />
    <单选按钮组="最大" 方向="横向">
        <单选按钮 主题颜色="背景" 文本="睡觉" 文本颜色="背景" 权重="0.2"
            背景图片="example/$ui - 交互界面/17.radio-单选按钮/img/img.png"
            重力="中间" />
        <单选按钮 主题颜色="背景" 文本="游戏" 文本颜色="背景" 权重="0.2"
            背景图片="example/$ui - 交互界面/17.radio-单选按钮/img/img_1.png"
            重力="中间" />
        <单选按钮 主题颜色="背景" 文本="吃饭" 文本颜色="背景" 权重="0.2"
            背景图片="example/$ui - 交互界面/17.radio-单选按钮/img/img_2.png"
            重力="中间" />
    </单选按钮组>
</界面>

存储关键字 - 应用内存储

应用内存储

通过storeKey(存储关键字)指定一个存储布尔值的关键字,获取值时可以直接通过$storage($存储)获取布尔值。

注意:不同的控件存储的类型不同,对于本控件(开关)则存储的是布尔值类型,表达当前是否被选中

<!-- 你必须在ui(界面)节点中通过store(存储)指定$storage($存储)的命名空间,等价于使用代码:let storage = $storage.create("MyAppRadio"); -->
<界面 存储="MyAppRadio">
    <状态栏 />
    <!-- 使用storeKey(存储关键字)属性,指定关键字,等价于使用代码:let data = $storage.create("MyAppRadio").getBool("吃饭"); -->
    <!-- 使用storeDef(存储默认值)属性,指定默认值,等价于使用代码:let data = $storage.create("MyAppRadio").getBool("吃饭",true); -->
    <单选按钮 存储默认值="是" 存储关键字="吃饭" 文本="吃饭" />
    <单选按钮 存储默认值="否" 存储关键字="睡觉" 文本="睡觉" />
</界面>

如果我们已经配置好了应用内存储,则可以直接获取数据:

注意:一、要使用应用内存储,必须在ui(界面)节点指定属性store(存储)的值,该值指定存储的命名空间; 二、不是所有的控件都支持应用内存储; 三、不同的控件存储的数据类型可能都不一致,例如:输入类型的控件存储的是字符串类型,开关、多选框存储的就是布尔类型的数据。

//创建(或者加载)存储对象
let storage = $storage.create("MyAppRadio");//名称要一致
//获取数据
let data = storage.getBoolean("eat",false);//数据类型是布尔值

二、常用函数

是选中的()

判断选中状态

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

设置选中(状态)

设置选中状态

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

监听选中(回调)

监听选中事件

  • 参数 : 回调 {(是否选中)=>{}} 选中事件回调
//解析布局,获得界面对象
定义 界面 = $界面.解析布局("./主界面.xml");
//获取控件
定义 单选按钮 = 界面.找控件("我的单选按钮");
//监听选中事件
单选按钮.监听选中((是否选中)=>{
    //..
});

设置重力(重力)

设置重力

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

设置文字(文本)

设置文字

  • 参数 : 文本 {String} 文字内容
//解析布局,获得界面对象
定义 界面 = $界面.解析布局("./主界面.xml");
//获取控件
定义 单选按钮 = 界面.找控件("我的单选按钮");
//设置文字
单选按钮.设置文字("吃饭");

获取文字()

获取文字

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

设置主题颜色(颜色)

设置主题颜色

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

设置文本颜色(颜色)

设置文本颜色

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