当前位置: 首页 > 文档资料 > Tabris 中文文档 >

AlertDialog(对话框)

优质
小牛编辑
160浏览
2023-12-01

继承自Popup

对话框是一个原生对话弹出框,显示一个消息与最多三个按钮。关闭时会被自动释放。

使用“const {AlertDialog} = require('tabris');”引入该类。

属性

buttons

Type: {ok?: string, cancel?: string, neutral?: string}

含有按钮文本内容的对象。分别是这三种按钮:ok, cancelneutral。没有设置文本的按钮不会显示。示例: {ok: 'Yes', cancel: 'No'}显示‘Yes’和‘No’按钮,不显示‘neutral’按钮。

message

Type: string

对话框中显示的文本。

title

Type: string

对话框的标题。

事件

buttonsChanged

buttons属性改变时触发。

事件参数

  • target: this 事件触发的控件。

  • value: {ok?: string, cancel?: string, neutral?: string} buttons属性被设置的新的值。

close

当对话框被关闭时触发。

事件参数

  • target: this 事件触发的控件。

  • button: ‘ok’|’cancel’|’neutral’|’’ 关闭对话框的操作按钮类型。也可能是个空串,比如点了应用返回按钮而被关闭时。

closeCancel

当通过点击‘cancel’按钮关闭对话框时触发。

closeNeutral

当通过点击‘neutral’按钮关闭对话框时触发。

closeOk

当通过点击‘ok’按钮关闭对话框时触发。

messageChanged

message属性发生改变时触发。

事件参数

  • target: this 事件触发的控件。

  • value: string message属性被设置的新的值。

titleChanged

title属性发生改变时触发。

事件参数

  • target: this 事件触发的控件。

  • value: string title属性被设置的新的值。

示例

const {AlertDialog, Button, ui} = require('tabris');

// AlertDialog example

new Button({
  left: 16, top: 'prev() 16', right: 16,
  text: 'Show simple dialog'
}).on('select', () => {
  new AlertDialog({
    message: 'Your comment has been saved.',
    buttons: {ok: 'Acknowledge'}
  }).open();
}).appendTo(ui.contentView);

new Button({
  left: 16, top: 'prev() 16', right: 16,
  text: 'Show full featured dialog'
}).on('select', () => {
  new AlertDialog({
    title: 'Conflict while saving',
    message: 'How do you want to resolve the conflict?',
    buttons: {
      ok: 'Replace',
      cancel: 'Discard',
      neutral: 'Keep editing'
    }
  }).on({
    closeOk: () => console.log('Replace'),
    closeNeutral: () => console.log('Keep editing'),
    closeCancel: () => console.log('Discard'),
    close: ({button}) => console.log('Dialog closed: ' + button)
  }).open();
}).appendTo(ui.contentView);

new Button({
  left: 16, top: 'prev() 16', right: 16,
  text: 'Show self closing dialog'
}).on('select', () => {
  let alertDialog = new AlertDialog({
    message: 'This dialogs closes in 3 seconds.',
    buttons: {ok: 'OK'}
  }).open();
  setTimeout(() => alertDialog.close(), 3000);
}).appendTo(ui.contentView);

还可参阅