按钮

  • 更新时间:2025-12-02 10:12:45

按钮-button

按钮控件{XButton}是属于{XView}的子控件,因此{XView}中的所有方法,按钮控件都可以调用。

按钮是界面的最简单的元素,一般用于点击操作。

一、基础使用

其实按钮本身是没有点击事件的,由于它继承了父类{XView},因此可以调用其父类中的函数来实现点击操作。

事实上,所有的组件都是继承自{XView}的,因此都可以调用{XView}中的方法。

<ui>
    <statusbar />
    <button id="mBut" text="点击我试试" />
</ui>
let ui = $ui.layout("ui.xml");
ui.show();//显示界面
//找到界面中的元素并且实现点击事件
ui.id("mBut").click(() => {
    info("我被点击了");
});

二、常用属性

text - 文本

设置文本

<ui>
    <statusbar />
    <!-- 设置文本 -->
    <button text="我是文本" />
</ui>

style - 样式

设置样式

可选值有:"text","outline","tonal","icon"

<ui>
    <statusbar />
    <!-- 横向排列 -->
    <linear dir="h" w="max">
        <button text="默认样式" />
        <button style="text" text="文本样式" />
        <button style="outline" text="边框样式" />
    </linear>
    <linear dir="h" w="max">
        <button style="tonal" text="色调样式" />
        <button style="icon" icon="ic_app" text="图标样式" />
    </linear>
</ui>

color - 主题颜色

设置主题颜色

<ui>
    <statusbar />
    <!-- 居中显示 -->
    <linear dir="h" w="max" gravity="center">
        <button color="#57965C" text="主题颜色" />
    </linear>
</ui>

textColor - 文本颜色

设置文本颜色

<ui>
    <statusbar />
    <!-- 居中显示 -->
    <linear dir="h" w="max" gravity="center">
        <button textColor="#B44A4A" text="文字颜色" />
    </linear>
</ui>

ripper - 涟漪颜色

设置涟漪颜色

<ui>
    <statusbar />
    <!-- 居中显示 -->
    <linear dir="h" w="max" gravity="center">
        <button ripper="#000000" text="涟漪颜色:黑色"/>
    </linear>
</ui>

radius - 弧度

设置弧度

<ui>
    <statusbar />
    <!-- 居中显示 -->
    <linear dir="h" w="max" gravity="center">
        <button radius="8" text="圆角弧度:8dp"/>
        <button radius="15" text="圆角弧度:15dp"/>
    </linear>
</ui>

textSize - 文本尺寸

设置文本尺寸

<ui>
    <statusbar />
    <!-- 居中显示 -->
    <linear dir="h" w="max" gravity="center">
        <button text="文本尺寸15" textSize="15"/>
        <button text="文本尺寸25" textSize="25"/>
    </linear>
</ui>

icon - 图标

设置图标

<ui>
    <statusbar />
    <!-- 居中显示 -->
    <linear dir="h" w="max" gravity="center">
        <button text="设置图标" icon="ic_delete"/>
    </linear>
</ui>

iconTint - 图标颜色

设置图标颜色

<ui>
    <statusbar />
    <!-- 居中显示 -->
    <linear dir="h" w="max" gravity="center">
        <button text="图标颜色" iconTint="#FF0000" icon="ic_delete"/>
    </linear>
</ui>

iconSize - 图标尺寸

设置图标尺寸

<ui>
    <statusbar />
    <!-- 居中显示 -->
    <linear dir="h" w="max" gravity="center">
        <button text="图标尺寸:11" iconSize="11" icon="ic_delete"/>
        <button text="图标尺寸:25" iconSize="25" icon="ic_delete"/>
    </linear>
</ui>

iconPadding - 图标内边距

设置图标内边距

<ui>
    <statusbar />
    <!-- 居中显示 -->
    <linear dir="h" w="max" gravity="center">
        <button text="图标内边距:5" iconPadding="5" icon="ic_delete"/>
        <button text="图标内边距:35" iconPadding="35" icon="ic_delete"/>
    </linear>
</ui>

minW - 最小宽度

设置最小宽度

单位:dp

<button minW="100" />

minH - 最小高度

设置最小高度

单位:dp

<button minH="100" />

padding - 内边距

设置内边距

<ui>
    <statusbar />
    <!-- 居中显示 -->
    <linear dir="h" w="max" gravity="center">
        <!--padding顺序是:左,上,右,下-->
        <!--padding只设置一个值:则设置所有方向的内边距-->
        <!--padding只设置两个值:则设置左右和上下方向的内边距-->
        <button padding="10" text="内边距:10"/>
        <button padding="20" text="内边距:20"/>
    </linear>
</ui>

gravity - 重力

设置重力

<ui>
    <statusbar />
    <!-- 为了让重力效果更直观,我将按钮增高增宽显示 -->
    <button gravity="start" text="重力:start" w="max" h="60"/>
    <button gravity="end" text="重力:end" w="max" h="60" />
</ui>

bg - 背景颜色

设置背景颜色

<ui>
    <statusbar />
    <linear w="max" gravity="center">
        <button bg="#1E1F22" text="背景颜色" />
    </linear>
</ui>

bgImg - 背景图片

设置背景图片

<ui>
    <statusbar />
    <linear w="max" gravity="center">
        <button bgImg="/res/button-bg.png" text="背景图片" textColor="#000000" />
    </linear>
</ui>

三、常用函数

setGravity(gravity)

设置重力

  • 参数 : gravity {String} 例如:"center|bottom"

//解析布局,获得ui对象
let ui = $ui.layout("./mUi.xml");
//获得控件
let mBut = ui.id("mButton");
//设置重力
mBut.setGravity("center|bottom");

setTypeface(typeface)

设置字体

  • 参数 : typeface {int} 字体类型(使用AgUi中的常量,例如:$ui.BOLD)

//解析布局,获得ui对象
let ui = $ui.layout("./mUi.xml");
//获得控件
let mBut = ui.id("mButton");
//设置字体
mBut.setTypeface($ui.BOLD);//常用值:$ui.NORMAL,$ui.ITALIC,$ui.BOLD,$ui.BOLD_ITALIC

setColor(color)

设置主题颜色

  • 参数 : color {int} 颜色

//解析布局,获得ui对象
let ui = $ui.layout("./mUi.xml");
//获得控件
let mBut = ui.id("mButton");
//设置红色
mBut.setColor($color.RED);
//设置成主题的颜色(具体颜色请参考$color文档)
//mBut.setColor($color.parse("colorPrimary"));

setColor(color)

设置主题颜色

  • 参数 : color {String} 颜色

//解析布局,获得ui对象
let ui = $ui.layout("./mUi.xml");
//获得控件
let mBut = ui.id("mButton");
//设置主题颜色
mBut.setColor("#1E1F22");

setText(text)

设置文字

  • 参数 : text {String} 文字

//解析布局,获得ui对象
let ui = $ui.layout("./mUi.xml");
//获得控件
let mBut = ui.id("mButton");
//设置文字
mBut.setText("我是按钮");

getText()

获得文字

如果获取的文本为null则会返回空字符串

  • 返回 : {String} 文字

//解析布局,获得ui对象
let ui = $ui.layout("./mUi.xml");
//获得控件
let mBut = ui.id("mButton");
//获得文字
let text = mBut.getText("我是按钮");

setTextColor(color)

设置文字颜色

  • 参数 : color {String} 颜色

//解析布局,获得ui对象
let ui = $ui.layout("./mUi.xml");
//获得控件
let mBut = ui.id("mButton");
//设置文字颜色
mBut.setTextColor("#1E1F22");

setTextColor(color)

设置文字颜色

  • 参数 : color {int} 颜色

//解析布局,获得ui对象
let ui = $ui.layout("./mUi.xml");
//获得控件
let mBut = ui.id("mButton");
//设置文字颜色
mBut.setTextColor($color.RED);

setRipper(color)

设置涟漪颜色

  • 参数 : color {int} 颜色

//解析布局,获得ui对象
let ui = $ui.layout("./mUi.xml");
//获得控件
let mBut = ui.id("mButton");
//设置涟漪颜色
mBut.setRipper($color.RED);

setRipper(color)

设置涟漪颜色

  • 参数 : color {string} 颜色

//解析布局,获得ui对象
let ui = $ui.layout("./mUi.xml");
//获得控件
let mBut = ui.id("mButton");
//设置涟漪颜色
mBut.setRipper("#1E1F22");

setRadius(radius)

设置弧度

  • 参数 : radius {int} 弧度

//解析布局,获得ui对象
let ui = $ui.layout("./mUi.xml");
//获得控件
let mBut = ui.id("mButton");
//设置弧度
mBut.setRadius(20);

setTextSize(size)

设置字体大小

  • 参数 : size {float} 字体大小

//解析布局,获得ui对象
let ui = $ui.layout("./mUi.xml");
//获得控件
let mBut = ui.id("mButton");
//设置字体大小(单位:sp)
mBut.setTextSize(20);

setIcon(icon)

设置图标

  • 参数 : icon {string} 图标

//解析布局,获得ui对象
let ui = $ui.layout("./mUi.xml");
//获得控件
let mBut = ui.id("mButton");
//设置图标
mBut.setIcon("logo_ag");

setIconTint(color)

设置图标颜色

  • 参数 : color {int} 图标颜色

//解析布局,获得ui对象
let ui = $ui.layout("./mUi.xml");
//获得控件
let mBut = ui.id("mButton");
//设置图标
mBut.setIcon("logo_ag");
//设置图标颜色
mBut.setIconTint($color.RED);

setIconTint(color)

设置图标颜色

  • 参数 : color {string} 图标颜色

//解析布局,获得ui对象
let ui = $ui.layout("./mUi.xml");
//获得控件
let mBut = ui.id("mButton");
//设置图标
mBut.setIcon("logo_ag");
//设置图标颜色
mBut.setIconTint("#1E1F22");

setIconSize(size)

设置图标尺寸

  • 参数 : size {int} 图标尺寸

//解析布局,获得ui对象
let ui = $ui.layout("./mUi.xml");
//获得控件
let mBut = ui.id("mButton");
//设置图标
mBut.setIcon("logo_ag");
//设置图标尺寸(单位:dp)
mBut.setIconSize(15);

setIconPadding(padding)

设置图标内边距

  • 参数 : padding {int} 设置图标内边距

//解析布局,获得ui对象
let ui = $ui.layout("./mUi.xml");
//获得控件
let mBut = ui.id("mButton");
//设置图标
mBut.setIcon("logo_ag");
//设置图标内边距
mBut.setIconPadding(8);