$dialog - M3对话框

  • 更新时间:2025-12-13 11:58:47

M3对话框

与$alert($提示框)不同,$dialog($对话框)是一个Material Design 3风格的对话框。

创建()

创建一个对话框

  • 返回 : {$dialog} 对话框对象

// 创建一个对话框
定义 对话框 = $对话框.创建()

标题(标题)

设置对话框标题

  • 参数 : 标题 {字符串} 对话框标题

  • 返回 : {$dialog} 自己

// 创建一个对话框
定义 对话框 = $对话框.创建()
// 设置对话框标题
对话框.标题("标题")

是显示的()

检查对话框是否正在显示

  • 返回 : {布尔值} 对话框是否正在显示

// 创建一个对话框
定义 对话框 = $对话框.创建()
// 设置对话框标题
if(对话框.是显示的()){
    日志("对话框正再显示");
}

内容(内容)

设置对话框消息

  • 参数 : 内容 {字符串} 对话框消息

  • 返回 : {$dialog} 自己

// 创建一个对话框
定义 对话框 = $对话框.创建()
// 设置对话框消息
对话框.内容("内容");

可取消(可取消)

设置对话框是否可以取消

  • 参数 : 可取消 {布尔值} 是否可以取消

  • 返回 : {$dialog} 自己

// 创建一个对话框
定义 对话框 = $对话框.创建()
// 设置对话框是否可以取消
对话框.可取消();

图标(图标)

设置对话框图标

  • 参数 : 图标 {字符串} 图标资源路径

  • 返回 : {$dialog} 自己

// 创建一个对话框
定义 对话框 = $对话框.创建()
// 设置对话框图标
对话框.图标("ag_logo);

视图(视图)

设置对话框视图

  • 参数 : 视图 {视图} 视图

  • 返回 : {$dialog} 自己

//解析一个布局
定义 界面 = $界面.解析界面("main.xml");
定义 视图 = 界面.获取视图();//获取视图
//创建一个对话框
定义 对话框 = $对话框.创建()
//设置对话框视图
对话框.视图(视图);

视图(视图)

设置对话框视图

  • 参数 : 视图 {视图} 视图

  • 返回 : {$dialog} 自己

//解析一个布局
定义 界面 = $界面.解析界面("main.xml");
定义 视图 = 界面.找控件("myView");//获取XView对象
//创建一个对话框
定义 对话框 = $对话框.创建()
//设置对话框视图
对话框.视图(视图);

按钮1(文本)

设置对话框第一个按钮

  • 参数 : 文本 {字符串} 按钮文本

  • 返回 : {$dialog} 自己

//创建一个对话框
定义 对话框 = $对话框.创建()
//设置按钮
对话框.按钮1("按钮1");

按钮1(文本, 回调)

设置对话框第一个按钮

回调参数:di:{DialogInterface} 接收到点击的对话框 which:{整数}被点击的按钮位置

  • 参数 : 文本 {字符串} 按钮文本

  • 参数 : 回调 {(di,which)=>{}} 回调函数

  • 返回 : {$dialog} 自己

//创建一个对话框
定义 对话框 = $对话框.创建()
//设置按钮
对话框.按钮1("按钮1",(di,which)=>{
    日志("我被点击了");
});

按钮2(文本)

设置对话框第二个按钮

  • 参数 : 文本 {字符串} 按钮文本

  • 返回 : {$dialog} 自己

//创建一个对话框
定义 对话框 = $对话框.创建()
//设置按钮
对话框.按钮2("按钮2");

按钮2(文本, 回调)

设置对话框第二个按钮

回调参数:di:{DialogInterface} 接收到点击的对话框 which:{整数}被点击的按钮位置

  • 参数 : 文本 {字符串} 按钮文本

  • 参数 : 回调 {(di,which)=>{}} 回调函数

  • 返回 : {$dialog} 自己

//创建一个对话框
定义 对话框 = $对话框.创建()
//设置按钮
对话框.按钮2("按钮2",(di,which)=>{
    日志("我被点击了");
});

按钮3(文本)

设置对话框第三个按钮

  • 参数 : 文本 {字符串} 按钮文本

  • 返回 : {$dialog} 自己

//创建一个对话框
定义 对话框 = $对话框.创建()
//设置按钮
对话框.按钮3("按钮3");

按钮3(文本, 回调)

设置对话框第三个按钮

回调参数:di:{DialogInterface} 接收到点击的对话框 which:{整数}被点击的按钮位置

  • 参数 : 文本 {字符串} 按钮文本

  • 参数 : 回调 {(di,which)=>{}} 回调函数

  • 返回 : {$dialog} 自己

//创建一个对话框
定义 对话框 = $对话框.创建()
//设置按钮
对话框.按钮3("按钮3",(di,which)=>{
    日志("我被点击了");
});

选项(选项, 回调)

设置对话框选项

回调参数:di:{DialogInterface} 接收到点击的对话框 which:{整数}被点击的按钮位置

  • 参数 : 选项 {字符串数组[]} 选项数组

  • 参数 : 回调 {(di,which)=>{}} 回调函数

  • 返回 : {$dialog} 自己

//创建一个对话框
定义 对话框 = $对话框.创建()
.选项(["选项1","选项2","选项3"],(di,which)=>{
    日志("我被点击了");
})
.显示();

单选(选项, 选中位置, 回调)

设置对话框单选选项

回调参数:di:{DialogInterface} 接收到点击的对话框 which:{整数}被点击的按钮位置

  • 参数 : 选项 {字符串数组[]} 选项数组

  • 参数 : 选中位置 {整数} 选中的选项位置

  • 参数 : 回调 {(di,which)=>{}} 回调函数

  • 返回 : {$dialog} 自己

//创建一个对话框
定义 对话框 = $对话框.创建()
.单选(["选项1","选项2","选项3"],0,(di,which)=>{
    日志("我被点击了");
})
.显示();

多选(选项, 回调)

设置对话框多选选项

回调参数:di:{DialogInterface} 接收到点击的对话框 which:{整数}被点击的按钮位置 isChecked:{布尔值} 是否被选中

  • 参数 : 选项 {字符串数组[]} 选项数组

  • 参数 : 回调 {(di,which,isChecked)=>{}} 回调函数

  • 返回 : {$dialog} 自己

//创建一个对话框
定义 对话框 = $对话框.创建()
.多选(["选项1","选项2","选项3"],(di,which)=>{
    日志("我被点击了");
})
.显示();

多选(选项, 选中项, 回调)

设置对话框多选选项

回调参数:di:{DialogInterface} 接收到点击的对话框 which:{整数}被点击的按钮位置 isChecked:{布尔值} 是否被选中

  • 参数 : 选项 {字符串数组[]} 选项数组

  • 参数 : 选中项 {boolean[]} 选中的选项数组

  • 参数 : 回调 {(di,which,isChecked)=>{}} 回调函数

  • 返回 : {$dialog} 自己

//创建一个对话框
定义 对话框 = $对话框.创建()
.多选(["选项1","选项2","选项3"],[false,true,false],(di,which,isChecked)=>{
    日志("我被点击了");
})
.显示();

显示()

显示对话框

  • 返回 : {AlertDialog} 对话框对象

//创建一个对话框
定义 对话框 = $对话框.创建()
.标题("提示")
.内容("我是一个对话框")
.显示();//显示对话框

显示之前(回调)

对话框显示前回调

需要注意的是:该回调是放在UI线程中执行的

  • 参数 : 回调 {()=>{}} 回调函数

  • 返回 : {$dialog} 自己

  • 版本 : 1.7.0

//创建一个对话框
定义 对话框 = $对话框.创建()
.标题("提示")
.内容("我是一个对话框")
.显示之前(()=>{
    日志("对话框显示前回调");
})
.显示();//显示对话框

显示之后(回调)

对话框显示后回调

需要注意的是:该回调是放在UI线程中执行的

  • 参数 : 回调 {()=>{}} 回调函数

  • 返回 : {$dialog} 自己

  • 版本 : 1.7.0

//在自定义view中,如果有界面元素需要刷新,那么就最好在dialog显示之后再操作
//例如:
定义 界面 = $界面.解析界面("界面.xml");//解析一个视图
定义 对话框 = $对话框.创建();//创建一个对话框
对话框.显示之后(()=>{
    //如果自定义视图中存在需要操作的ui元素,可以放到这里操作
    定义 关闭按钮 = 界面.找控件("关闭按钮");
    关闭按钮.点击事件(()=>{
        对话框.关闭();//关闭对话框
    });
}).视图(界面.获取视图()).显示();//显示自定义视图

监听关闭(回调)

监听对话框关闭

  • 参数 : 回调 {()=>{}} 对话框关闭后回调

  • 版本 : 1.8.0

定义 对话框 = $对话框.创建()
.标题("标题")
.内容("我是信息")
.按钮3("关闭",()=>{
    //这里关闭对话框
    对话框.关闭();
})
.监听关闭(()=>{
    日志("对话框被关闭了");
})
.显示();//显示对话框

关闭()

关闭对话框

//创建一个对话框
定义 对话框 = $对话框.创建()
.标题("提示")
.内容("我是一个对话框")
.按钮1("关闭",()=>{
    对话框.关闭();//关闭对话框
})
.显示();//显示对话框