• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.promptAction (弹窗)
2
3创建并显示文本提示框、对话框和操作菜单。
4
5> **说明:**
6>
7> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8>
9> 该模块不支持在[UIAbility](../apis-ability-kit/js-apis-app-ability-uiAbility.md)的文件声明处使用,即不能在UIAbility的生命周期中调用,需要在创建组件实例后使用。
10>
11> 本模块功能依赖UI的执行上下文,不可在UI上下文不明确的地方使用,参见[UIContext](js-apis-arkui-UIContext.md#uicontext)说明。建议在<!--Del-->除[ServiceExtension](../../application-models/serviceextensionability.md)等<!--DelEnd-->无UI界面的场景外,均使用UIContext中的弹窗方法。
12>
13> 从API version 10开始,可以通过使用[UIContext](js-apis-arkui-UIContext.md#uicontext)中的[getPromptAction](js-apis-arkui-UIContext.md#getpromptaction)方法获取当前UI上下文关联的[PromptAction](js-apis-arkui-UIContext.md#promptaction)对象。
14
15## 导入模块
16
17```ts
18import { promptAction } from '@kit.ArkUI';
19```
20
21## promptAction.showToast
22
23showToast(options: ShowToastOptions): void
24
25创建并显示文本提示框。
26
27**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
28
29**系统能力:** SystemCapability.ArkUI.ArkUI.Full
30
31**参数:**
32
33| 参数名     | 类型                                    | 必填   | 说明      |
34| ------- | ------------------------------------- | ---- | ------- |
35| options | [ShowToastOptions](#showtoastoptions) | 是    | 文本弹窗选项。 |
36
37**错误码:**
38
39以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.promptAction(弹窗)](errorcode-promptAction.md)错误码。
40
41| 错误码ID   | 错误信息 |
42| --------- | ------- |
43| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2.Incorrect parameters types; 3. Parameter verification failed.   |
44| 100001    | Internal error. |
45
46**示例:**
47
48```ts
49import { promptAction } from '@kit.ArkUI'
50import { BusinessError } from '@kit.BasicServicesKit';
51
52@Entry
53@Component
54struct toastExample {
55  build() {
56    Column() {
57      Button('Show toast').fontSize(20)
58        .onClick(() => {
59          try {
60            promptAction.showToast({
61              message: 'Hello World',
62              duration: 2000
63            });
64          } catch (error) {
65            let message = (error as BusinessError).message
66            let code = (error as BusinessError).code
67            console.error(`showToast args error code is ${code}, message is ${message}`);
68          };
69        })
70    }.height('100%').width('100%').justifyContent(FlexAlign.Center)
71  }
72}
73```
74API version 11及之前Toast样式。
75
76![zh-cn_image_0001](figures/toast-api11.gif)
77
78API version 12及之后Toast样式。
79
80![zh-cn_image_0001](figures/toast-api12.gif)
81
82## promptAction.showDialog
83
84showDialog(options: ShowDialogOptions): Promise&lt;ShowDialogSuccessResponse&gt;
85
86创建并显示对话框,对话框响应后异步返回结果。
87
88**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
89
90**系统能力:**  SystemCapability.ArkUI.ArkUI.Full
91
92**参数:**
93
94| 参数名     | 类型                                      | 必填   | 说明     |
95| ------- | --------------------------------------- | ---- | ------ |
96| options | [ShowDialogOptions](#showdialogoptions) | 是    | 对话框选项。 |
97
98**返回值:**
99
100| 类型                                       | 说明       |
101| ---------------------------------------- | -------- |
102| Promise&lt;[ShowDialogSuccessResponse](#showdialogsuccessresponse)&gt; | 对话框响应结果。 |
103
104**错误码:**
105
106以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.promptAction(弹窗)](errorcode-promptAction.md)错误码。
107
108| 错误码ID   | 错误信息 |
109| --------- | ------- |
110| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2.Incorrect parameters types; 3. Parameter verification failed.   |
111| 100001    | Internal error. |
112
113**示例:**
114
115```ts
116import { promptAction } from '@kit.ArkUI'
117
118promptAction.showDialog({
119  title: 'Title Info',
120  message: 'Message Info',
121  buttons: [
122    {
123      text: 'button1',
124      color: '#000000'
125    },
126    {
127      text: 'button2',
128      color: '#000000'
129    }
130  ],
131})
132  .then(data => {
133    console.info('showDialog success, click button: ' + data.index);
134  })
135  .catch((err: Error) => {
136    console.info('showDialog error: ' + err);
137  })
138```
139
140![zh-cn_image_0002](figures/zh-cn_image_0002.gif)
141
142## promptAction.showDialog
143
144showDialog(options: ShowDialogOptions, callback: AsyncCallback&lt;ShowDialogSuccessResponse&gt;):void
145
146创建并显示对话框,对话框响应结果异步返回。
147
148**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
149
150**系统能力:**  SystemCapability.ArkUI.ArkUI.Full
151
152**参数:**
153
154| 参数名      | 类型                                       | 必填   | 说明           |
155| -------- | ---------------------------------------- | ---- | ------------ |
156| options  | [ShowDialogOptions](#showdialogoptions)  | 是    | 页面显示对话框信息描述。 |
157| callback | AsyncCallback&lt;[ShowDialogSuccessResponse](#showdialogsuccessresponse)&gt; | 是    | 对话框响应结果回调。   |
158
159**错误码:**
160
161以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.promptAction(弹窗)](errorcode-promptAction.md)错误码。
162
163| 错误码ID   | 错误信息 |
164| --------- | ------- |
165| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2.Incorrect parameters types; 3. Parameter verification failed.   |
166| 100001    | Internal error. |
167
168**示例:**
169
170```ts
171import { promptAction } from '@kit.ArkUI';
172import { BusinessError } from '@kit.BasicServicesKit';
173
174try {
175  promptAction.showDialog({
176    title: 'showDialog Title Info',
177    message: 'Message Info',
178    buttons: [
179      {
180        text: 'button1',
181        color: '#000000'
182      },
183      {
184        text: 'button2',
185        color: '#000000'
186      }
187    ]
188  }, (err, data) => {
189    if (err) {
190      console.info('showDialog err: ' + err);
191      return;
192    }
193    console.info('showDialog success callback, click button: ' + data.index);
194  });
195} catch (error) {
196  let message = (error as BusinessError).message
197  let code = (error as BusinessError).code
198  console.error(`showDialog args error code is ${code}, message is ${message}`);
199};
200```
201
202![zh-cn_image_0004](figures/zh-cn_image_0004.gif)
203
204当弹窗的showInSubWindow属性为true时,弹窗可显示在窗口外。
205
206```ts
207import { promptAction } from '@kit.ArkUI';
208import { BusinessError } from '@kit.BasicServicesKit';
209
210try {
211  promptAction.showDialog({
212    title: 'showDialog Title Info',
213    message: 'Message Info',
214    isModal: true,
215    showInSubWindow: true,
216    buttons: [
217      {
218        text: 'button1',
219        color: '#000000'
220      },
221      {
222        text: 'button2',
223        color: '#000000'
224      }
225    ]
226  }, (err, data) => {
227    if (err) {
228      console.info('showDialog err: ' + err);
229      return;
230    }
231    console.info('showDialog success callback, click button: ' + data.index);
232  });
233} catch (error) {
234  let message = (error as BusinessError).message
235  let code = (error as BusinessError).code
236  console.error(`showDialog args error code is ${code}, message is ${message}`);
237};
238```
239
240![zh-cn_image_0002_showinsubwindow](figures/zh-cn_image_0002_showinsubwindow.jpg)
241
242
243
244## promptAction.showActionMenu
245
246showActionMenu(options: ActionMenuOptions, callback: AsyncCallback&lt;ActionMenuSuccessResponse&gt;):void
247
248创建并显示操作菜单,菜单响应结果异步返回。
249
250**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
251
252**系统能力:** SystemCapability.ArkUI.ArkUI.Full253
254**参数:**
255
256| 参数名      | 类型                                       | 必填   | 说明        |
257| -------- | ---------------------------------------- | ---- | --------- |
258| options  | [ActionMenuOptions](#actionmenuoptions)  | 是    | 操作菜单选项。   |
259| callback | AsyncCallback&lt;[ActionMenuSuccessResponse](#actionmenusuccessresponse)> | 是    | 菜单响应结果回调。 |
260
261**错误码:**
262
263以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.promptAction(弹窗)](errorcode-promptAction.md)错误码。
264
265| 错误码ID   | 错误信息 |
266| --------- | ------- |
267| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2.Incorrect parameters types; 3. Parameter verification failed.   |
268| 100001    | Internal error. |
269
270**示例:**
271
272```ts
273import { promptAction } from '@kit.ArkUI';
274import { BusinessError } from '@kit.BasicServicesKit';
275
276try {
277  promptAction.showActionMenu({
278    title: 'Title Info',
279    buttons: [
280      {
281        text: 'item1',
282        color: '#666666'
283      },
284      {
285        text: 'item2',
286        color: '#000000'
287      },
288    ]
289  }, (err, data) => {
290    if (err) {
291      console.info('showActionMenu err: ' + err);
292      return;
293    }
294    console.info('showActionMenu success callback, click button: ' + data.index);
295  })
296} catch (error) {
297  let message = (error as BusinessError).message
298  let code = (error as BusinessError).code
299  console.error(`showActionMenu args error code is ${code}, message is ${message}`);
300};
301```
302
303![zh-cn_image_0005](figures/zh-cn_image_0005.gif)
304
305## promptAction.showActionMenu
306
307showActionMenu(options: ActionMenuOptions): Promise&lt;ActionMenuSuccessResponse&gt;
308
309创建并显示操作菜单,菜单响应后异步返回结果。
310
311**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
312
313**系统能力:** SystemCapability.ArkUI.ArkUI.Full
314
315**参数:**
316
317| 参数名     | 类型                                      | 必填   | 说明      |
318| ------- | --------------------------------------- | ---- | ------- |
319| options | [ActionMenuOptions](#actionmenuoptions) | 是    | 操作菜单选项。 |
320
321**返回值:**
322
323| 类型                                       | 说明      |
324| ---------------------------------------- | ------- |
325| Promise&lt;[ActionMenuSuccessResponse](#actionmenusuccessresponse)&gt; | 菜单响应结果。 |
326
327**错误码:**
328
329以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.promptAction(弹窗)](errorcode-promptAction.md)错误码。
330
331| 错误码ID   | 错误信息 |
332| --------- | ------- |
333| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2.Incorrect parameters types; 3. Parameter verification failed.   |
334| 100001    | Internal error. |
335
336**示例:**
337
338```ts
339import { promptAction } from '@kit.ArkUI';
340
341promptAction.showActionMenu({
342  title: 'showActionMenu Title Info',
343  buttons: [
344    {
345      text: 'item1',
346      color: '#666666'
347    },
348    {
349      text: 'item2',
350      color: '#000000'
351    },
352  ]
353})
354  .then(data => {
355    console.info('showActionMenu success, click button: ' + data.index);
356  })
357  .catch((err: Error) => {
358    console.info('showActionMenu error: ' + err);
359  })
360```
361
362![zh-cn_image_0006](figures/zh-cn_image_0006.gif)
363
364## promptAction.openCustomDialog<sup>11+</sup>
365
366openCustomDialog(options: CustomDialogOptions): Promise&lt;number&gt;
367
368打开自定义弹窗。
369
370<!--Del-->不支持在ServiceExtension中使用。<!--DelEnd-->
371
372暂不支持isModal = true与showInSubWindow = true同时使用。
373
374弹窗宽度在设备竖屏时默认为 所在窗口宽度 - 左右margin(16vp,设备为2in1时为40vp),最大默认宽度为400vp。
375
376**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
377
378**系统能力:** SystemCapability.ArkUI.ArkUI.Full
379
380**参数:**
381
382| 参数名  | 类型                                          | 必填 | 说明               |
383| ------- | --------------------------------------------- | ---- | ------------------ |
384| options | [CustomDialogOptions](#customdialogoptions11) | 是   | 自定义弹窗的内容。 |
385
386**返回值:**
387
388| 类型                  | 说明                                  |
389| --------------------- | ------------------------------------- |
390| Promise&lt;number&gt; | 返回供closeCustomDialog使用的对话框id。 |
391
392**错误码:**
393
394以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.promptAction(弹窗)](errorcode-promptAction.md)错误码。
395
396| 错误码ID | 错误信息                           |
397| -------- | ---------------------------------- |
398| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2.Incorrect parameters types; 3. Parameter verification failed.   |
399| 100001   | Internal error. |
400
401**示例:**
402
403```ts
404import { promptAction } from '@kit.ArkUI'
405import { BusinessError } from '@kit.BasicServicesKit'
406
407@Entry
408@Component
409struct Index {
410  private customDialogComponentId: number = 0
411
412  @Builder
413  customDialogComponent() {
414    Column() {
415      Text('弹窗').fontSize(30)
416      Row({ space: 50 }) {
417        Button("确认").onClick(() => {
418          try {
419            promptAction.closeCustomDialog(this.customDialogComponentId)
420          } catch (error) {
421            let message = (error as BusinessError).message;
422            let code = (error as BusinessError).code;
423            console.error(`closeCustomDialog error code is ${code}, message is ${message}`);
424          }
425        })
426        Button("取消").onClick(() => {
427          try {
428            promptAction.closeCustomDialog(this.customDialogComponentId)
429          } catch (error) {
430            let message = (error as BusinessError).message;
431            let code = (error as BusinessError).code;
432            console.error(`closeCustomDialog error code is ${code}, message is ${message}`);
433          }
434        })
435      }
436    }.height(200).padding(5).justifyContent(FlexAlign.SpaceBetween)
437  }
438
439  build() {
440    Row() {
441      Column({ space: 20 }) {
442        Text('组件内弹窗')
443          .fontSize(30)
444          .onClick(() => {
445            promptAction.openCustomDialog({
446              builder: () => {
447                this.customDialogComponent()
448              },
449              onWillDismiss: (dismissDialogAction: DismissDialogAction) => {
450                console.info("reason" + JSON.stringify(dismissDialogAction.reason))
451                console.log("dialog onWillDismiss")
452                if (dismissDialogAction.reason == DismissReason.PRESS_BACK) {
453                  dismissDialogAction.dismiss()
454                }
455                if (dismissDialogAction.reason == DismissReason.TOUCH_OUTSIDE) {
456                  dismissDialogAction.dismiss()
457                }
458              }
459            }).then((dialogId: number) => {
460              this.customDialogComponentId = dialogId
461            })
462              .catch((error: BusinessError) => {
463                console.error(`openCustomDialog error code is ${error.code}, message is ${error.message}`)
464              })
465          })
466      }
467      .width('100%')
468    }
469    .height('100%')
470  }
471}
472
473```
474该示例定义了弹窗样式,如宽度、高度、背景色、阴影等等。
475```ts
476import { promptAction, LevelMode, ImmersiveMode } from '@kit.ArkUI'
477
478let customDialogId: number = 0
479
480@Builder
481function customDialogBuilder() {
482  Column() {
483    Text('Custom dialog Message').fontSize(10)
484    Row() {
485      Button("确认").onClick(() => {
486        promptAction.closeCustomDialog(customDialogId)
487      })
488      Blank().width(50)
489      Button("取消").onClick(() => {
490        promptAction.closeCustomDialog(customDialogId)
491      })
492    }
493  }
494}
495
496@Entry
497@Component
498struct Index {
499  @State message: string = 'Hello World'
500
501  @Builder
502  customDialogComponent() {
503    customDialogBuilder()
504  }
505
506  build() {
507    Row() {
508      Column() {
509        Text(this.message).id("test_text")
510          .fontSize(50)
511          .fontWeight(FontWeight.Bold)
512          .onClick(() => {
513            const node: FrameNode | null = this.getUIContext().getFrameNodeById("test_text") || null;
514            promptAction.openCustomDialog({
515              builder: () => {
516                this.customDialogComponent()
517              },
518              keyboardAvoidMode: KeyboardAvoidMode.NONE,
519              showInSubWindow: false,
520              offset: { dx: 5, dy: 5 },
521              backgroundColor: 0xd9ffffff,
522              cornerRadius: 20,
523              width: '80%',
524              height: 200,
525              borderWidth: 1,
526              borderStyle: BorderStyle.Dashed, //使用borderStyle属性,需要和borderWidth属性一起使用
527              borderColor: Color.Blue, //使用borderColor属性,需要和borderWidth属性一起使用
528              shadow: ({
529                radius: 20,
530                color: Color.Grey,
531                offsetX: 50,
532                offsetY: 0
533              }),
534              levelMode: LevelMode.EMBEDDED,
535              levelUniqueId: node?.getUniqueId(),
536              immersiveMode: ImmersiveMode.DEFAULT,
537            }).then((dialogId: number) => {
538              customDialogId = dialogId
539            })
540          })
541      }
542      .width('100%')
543    }
544    .height('100%')
545  }
546}
547```
548![zh-cn_image_0007](figures/zh-cn_image_0007.gif)
549
550该示例实现了一个页面内的弹窗。
551```ts
552// Index.ets
553import { promptAction, LevelMode, ImmersiveMode, router } from '@kit.ArkUI'
554
555let customDialogId: number = 0
556
557@Builder
558function customDialogBuilder() {
559  Column() {
560    Text('Custom dialog Message').fontSize(10).height(100)
561    Row() {
562      Button("Next").onClick(() => {
563        router.pushUrl({url: 'pages/Next'})
564      })
565      Blank().width(50)
566      Button("Close").onClick(() => {
567        promptAction.closeCustomDialog(customDialogId)
568      })
569    }
570  }.padding(20)
571}
572
573@Entry
574@Component
575struct Index {
576  @State message: string = 'Hello World'
577
578  @Builder
579  customDialogComponent() {
580    customDialogBuilder()
581  }
582
583  build() {
584    Row() {
585      Column() {
586        Text(this.message).id("test_text")
587          .fontSize(50)
588          .fontWeight(FontWeight.Bold)
589          .onClick(() => {
590            const node: FrameNode | null = this.getUIContext().getFrameNodeById("test_text") || null;
591            promptAction.openCustomDialog({
592              builder: () => {
593                this.customDialogComponent()
594              },
595              levelMode: LevelMode.EMBEDDED,
596              levelUniqueId: node?.getUniqueId(),
597              immersiveMode: ImmersiveMode.DEFAULT,
598            }).then((dialogId: number) => {
599              customDialogId = dialogId
600            })
601          })
602      }
603      .width('100%')
604    }
605    .height('100%')
606  }
607}
608```
609```ts
610// Next.ets
611import { router } from '@kit.ArkUI'
612
613@Entry
614@Component
615struct Next {
616  @State message: string = 'Back'
617
618  build() {
619    Row() {
620      Column() {
621        Button(this.message)
622          .fontSize(50)
623          .fontWeight(FontWeight.Bold)
624          .onClick(() => {
625            router.back()
626          })
627      }
628      .width('100%')
629    }
630    .height('100%')
631  }
632}
633```
634![embedded_dialog](figures/embedded_dialog.gif)
635
636## promptAction.closeCustomDialog<sup>11+</sup>
637
638closeCustomDialog(dialogId: number): void
639
640关闭自定义弹窗。
641
642**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
643
644**系统能力:** SystemCapability.ArkUI.ArkUI.Full
645
646**参数:**
647
648| 参数名   | 类型   | 必填 | 说明                             |
649| -------- | ------ | ---- | -------------------------------- |
650| dialogId | number | 是   | openCustomDialog返回的对话框id。 |
651
652**错误码:**
653
654以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.promptAction(弹窗)](errorcode-promptAction.md)错误码。
655
656| 错误码ID | 错误信息                           |
657| -------- | ---------------------------------- |
658| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2.Incorrect parameters types; 3. Parameter verification failed.   |
659| 100001   | Internal error. |
660
661**示例:**
662
663示例请看[promptAction.openCustomDialog](#promptactionopencustomdialog11)的示例。
664
665## ShowToastOptions
666
667文本提示框的选项。
668
669**系统能力:**  SystemCapability.ArkUI.ArkUI.Full
670
671| 名称                    | 类型                                                         | 必填 | 说明                                                         |
672| ----------------------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
673| message                 | string&nbsp;\|&nbsp;[Resource](arkui-ts/ts-types.md#resource类型) | 是   | 显示的文本信息。<br>**说明:** <br/>默认字体为'Harmony Sans',不支持设置其他字体。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
674| duration                | number                                                       | 否   | 默认值1500ms,取值区间:1500ms-10000ms。若小于1500ms则取默认值,若大于10000ms则取上限值10000ms。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
675| bottom                  | string&nbsp;\|&nbsp;number                                   | 否   | 设置弹窗底部边框距离导航条的高度,ToastShowMode.TOP_MOST模式下,软键盘拉起时,如果bottom值过小,toast要被软键盘遮挡时,会自动避让至距离软键盘80vp处。ToastShowMode.DEFAULT模式下,软键盘拉起时,会上移软键盘的高度。<br/>默认值:80vp<br/>**说明:** <br/>当底部没有导航条时,bottom为设置弹窗底部边框距离窗口底部的高度。<br/>设置对齐方式alignment后,bottom不生效。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
676| showMode<sup>11+</sup>  | [ToastShowMode](#toastshowmode11)                            | 否   | 设置弹窗是否显示在应用之上。<br>默认值:ToastShowMode.DEFAULT,默认显示在应用内。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 |
677| alignment<sup>12+</sup> | [Alignment](arkui-ts/ts-appendix-enums.md#alignment)         | 否   | 对齐方式。<br/>默认值:undefined,默认底部偏上位置。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。         |
678| offset<sup>12+</sup>    | [Offset](arkui-ts/ts-types.md#offset)                        | 否   | 在对齐方式上的偏移。<br/>默认值:{ dx: 0, dy: 0 },默认没有偏移。<br/>**说明:** <br/>只支持设置px类型的数值,如需设置vp,可以将vp改成px传入。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 |
679| backgroundColor<sup>12+</sup>    | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否   | 文本提示框背板颜色。<br/>默认值:Color.Transparent<br/>**说明:** <br/>当设置了backgroundColor为非透明色时,backgroundBlurStyle需要设置为BlurStyle.NONE,否则颜色显示将不符合预期效果。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 |
680| textColor<sup>12+</sup>    | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否   | 文本提示框文本颜色。<br/>默认值:Color.Black<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 |
681| backgroundBlurStyle<sup>12+</sup>    | [BlurStyle](arkui-ts/ts-universal-attributes-background.md#blurstyle9) | 否   | 文本提示框背板模糊材质。<br/>默认值:BlurStyle.COMPONENT_ULTRA_THICK<br/>**说明:** <br/>设置为BlurStyle.NONE即可关闭背景虚化。当设置了backgroundBlurStyle为非NONE值时,则不要设置backgroundColor,否则颜色显示将不符合预期效果。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 |
682| shadow<sup>12+</sup>    | [ShadowOptions](arkui-ts/ts-universal-attributes-image-effect.md#shadowoptions对象说明)&nbsp;\|&nbsp;[ShadowStyle](arkui-ts/ts-universal-attributes-image-effect.md#shadowstyle10枚举说明) | 否   | 文本提示框背板阴影。<br/>默认值:ShadowStyle.OUTER_DEFAULT_MD<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 |
683| enableHoverMode<sup>14+</sup>    | boolean                       | 否   | 是否响应悬停态。<br/>默认值:false,默认不响应。<br/>**原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。 |
684| hoverModeArea<sup>14+</sup> | [HoverModeAreaType](arkui-ts/ts-appendix-enums.md#hovermodeareatype14)         | 否   | 响应悬停态时,弹窗的显示区域。<br/>默认值:HoverModeAreaType.BOTTOM_SCREEN,默认显示在下半屏。<br/>**原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。         |
685
686## ToastShowMode<sup>11+</sup>
687
688设置弹窗显示模式,默认显示在应用内,支持显示在应用之上。
689
690**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
691
692**系统能力:**  SystemCapability.ArkUI.ArkUI.Full
693
694| 名称     | 值   | 说明                   |
695| -------- | ---- | ---------------------- |
696| DEFAULT  | 0    | Toast 显示在应用内。   |
697| TOP_MOST | 1    | Toast 显示在应用之上。 |
698
699## ShowDialogOptions
700
701对话框的选项。
702
703**系统能力:** SystemCapability.ArkUI.ArkUI.Full
704
705| 名称                              | 类型                                                         | 必填 | 说明                                                         |
706| --------------------------------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
707| title                             | string&nbsp;\|&nbsp;[Resource](arkui-ts/ts-types.md#resource类型) | 否   | 标题文本。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
708| message                           | string&nbsp;\|&nbsp;[Resource](arkui-ts/ts-types.md#resource类型) | 否   | 内容文本。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
709| buttons                           | Array&lt;[Button](#button)&gt;                               | 否   | 对话框中按钮的数组,结构为:{text:'button',&nbsp;color:&nbsp;'\#666666'},支持大于1个按钮。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
710| alignment<sup>10+</sup>           | [DialogAlignment](arkui-ts/ts-methods-alert-dialog-box.md#dialogalignment枚举说明) | 否   | 弹窗在竖直方向上的对齐方式。<br/>默认值:DialogAlignment.Default<br/>**说明**:<br/>若在UIExtension中设置showInSubWindow为true, 弹窗将基于UIExtension的宿主窗口对齐。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
711| offset<sup>10+</sup>              | [Offset](arkui-ts/ts-types.md#offset)                        | 否   | 弹窗相对alignment所在位置的偏移量。<br/>默认值:{&nbsp;dx:&nbsp;0&nbsp;,&nbsp;dy:&nbsp;0&nbsp;}<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
712| maskRect<sup>10+</sup>            | [Rectangle](arkui-ts/ts-methods-alert-dialog-box.md#rectangle8类型说明) | 否   | 弹窗遮蔽层区域,在遮蔽层区域内的事件不透传,在遮蔽层区域外的事件透传。<br/>默认值:{ x: 0, y: 0, width: '100%', height: '100%' } <br/>**说明:**<br/>showInSubWindow为true时,maskRect不生效。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
713| showInSubWindow<sup>11+</sup>     | boolean                                                      | 否   | 某弹框需要显示在主窗口之外时,是否在子窗口显示此弹窗。<br/>默认值:false,弹窗显示在应用内,而非独立子窗口。<br/>**说明**:showInSubWindow为true的弹窗无法触发显示另一个showInSubWindow为true的弹窗。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 |
714| isModal<sup>11+</sup>             | boolean                                                      | 否   | 弹窗是否为模态窗口,模态窗口有蒙层,非模态窗口无蒙层。<br/>默认值:true,此时弹窗有蒙层。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 |
715| backgroundColor<sup>12+</sup>     | [ResourceColor](arkui-ts/ts-types.md#resourcecolor)          | 否   | 弹窗背板颜色。<br/>默认值:Color.Transparent<br/>**说明:** <br/>当设置了backgroundColor为非透明色时,backgroundBlurStyle需要设置为BlurStyle.NONE,否则颜色显示将不符合预期效果。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 |
716| backgroundBlurStyle<sup>12+</sup> | [BlurStyle](arkui-ts/ts-universal-attributes-background.md#blurstyle9) | 否   | 弹窗背板模糊材质。<br/>默认值:BlurStyle.COMPONENT_ULTRA_THICK<br/>**说明:** <br/>设置为BlurStyle.NONE即可关闭背景虚化。当设置了backgroundBlurStyle为非NONE值时,则不要设置backgroundColor,否则颜色显示将不符合预期效果。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 |
717| shadow<sup>12+</sup>              | [ShadowOptions](arkui-ts/ts-universal-attributes-image-effect.md#shadowoptions对象说明)&nbsp;\|&nbsp;[ShadowStyle](arkui-ts/ts-universal-attributes-image-effect.md#shadowstyle10枚举说明) | 否   | 设置弹窗背板的阴影。<br /> 当设备为2in1时,默认场景下获焦阴影值为ShadowStyle.OUTER_FLOATING_MD,失焦为ShadowStyle.OUTER_FLOATING_SM<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 |
718| enableHoverMode<sup>14+</sup>     | boolean                                                      | 否   | 是否响应悬停态。<br />默认值:false,默认不响应。<br/>**原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。            |
719| hoverModeArea<sup>14+</sup>       | [HoverModeAreaType](arkui-ts/ts-appendix-enums.md#hovermodeareatype14) | 否   | 悬停态下弹窗默认展示区域。<br />默认值:HoverModeAreaType.BOTTOM_SCREEN<br/>**原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。 |
720| levelMode<sup>15+</sup>       | [LevelMode](#levelmode15枚举说明) | 否   | 设置弹窗显示层级。<br />**说明:**<br />- 默认值:LevelMode.OVERLAY。<br />- 当且仅当showInSubWindow属性设置为false时生效。<br/>**原子化服务API:** 从API version 15开始,该接口支持在原子化服务中使用。|
721| levelUniqueId<sup>15+</sup>       | number | 否   | 设置页面级弹窗需要显示的层级下的[节点 uniqueId](js-apis-arkui-frameNode.md#getuniqueid12)。<br />**说明:**<br />- 当且仅当levelMode属性设置为LevelMode.EMBEDDED时生效。<br/>**原子化服务API:** 从API version 15开始,该接口支持在原子化服务中使用。|
722| immersiveMode<sup>15+</sup>       | [ImmersiveMode](#immersivemode15枚举说明) | 否   | 设置页面内弹窗蒙层效果。<br />**说明:**<br />- 默认值:ImmersiveMode.DEFAULT <br />- 当且仅当levelMode属性设置为LevelMode.EMBEDDED时生效。<br/>**原子化服务API:** 从API version 15开始,该接口支持在原子化服务中使用。|
723
724## ShowDialogSuccessResponse
725
726对话框的响应结果。
727
728**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
729
730**系统能力:**  SystemCapability.ArkUI.ArkUI.Full
731
732| 名称  | 类型   | 必填 | 说明                            |
733| ----- | ------ | ---- | ------------------------------- |
734| index | number | 是   | 选中按钮在buttons数组中的索引。 |
735
736## ActionMenuOptions
737
738操作菜单的选项。
739
740**系统能力:** SystemCapability.ArkUI.ArkUI.Full
741
742| 名称                          | 类型                                                         | 必填 | 说明                                                         |
743| ----------------------------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
744| title                         | string&nbsp;\|&nbsp;[Resource](arkui-ts/ts-types.md#resource类型) | 否   | 标题文本。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
745| buttons                       | [[Button](#button),[Button](#button)?,[Button](#button)?,[Button](#button)?,[Button](#button)?,[Button](#button)?] | 是   | 菜单中菜单项按钮的数组,结构为:{text:'button',&nbsp;color:&nbsp;'\#666666'},支持1-6个按钮。按钮数量大于6个时,仅显示前6个按钮,之后的按钮不显示。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
746| showInSubWindow<sup>11+</sup> | boolean                                                      | 否   | 某弹框需要显示在主窗口之外时,是否在子窗口显示此弹窗。<br/>默认值:false,在子窗口不显示弹窗。<br/>**说明**:<br/> - showInSubWindow为true的弹窗无法触发显示另一个showInSubWindow为true的弹窗。 <br/> - 若在UIExtension中设置showInSubWindow为true, 弹窗将基于UIExtension的宿主窗口对齐。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 |
747| isModal<sup>11+</sup>         | boolean                                                      | 否   | 弹窗是否为模态窗口,模态窗口有蒙层,非模态窗口无蒙层。<br/>默认值:true,此时弹窗有蒙层。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 |
748| levelMode<sup>15+</sup>       | [LevelMode](#levelmode15枚举说明) | 否   | 设置弹窗显示层级。<br />**说明:**<br />- 默认值:LevelMode.OVERLAY。<br />- 当且仅当showInSubWindow属性设置为false时生效。<br/>**原子化服务API:** 从API version 15开始,该接口支持在原子化服务中使用。|
749| levelUniqueId<sup>15+</sup>       | number | 否   | 设置页面级弹窗需要显示的层级下的[节点 uniqueId](js-apis-arkui-frameNode.md#getuniqueid12)。<br />**说明:**<br />- 当且仅当levelMode属性设置为LevelMode.EMBEDDED时生效。<br/>**原子化服务API:** 从API version 15开始,该接口支持在原子化服务中使用。|
750| immersiveMode<sup>15+</sup>       | [ImmersiveMode](#immersivemode15枚举说明) | 否   | 设置页面内弹窗蒙层效果。<br />**说明:**<br />- 默认值:ImmersiveMode.DEFAULT <br />- 当且仅当levelMode属性设置为LevelMode.EMBEDDED时生效。<br/>**原子化服务API:** 从API version 15开始,该接口支持在原子化服务中使用。|
751
752## ActionMenuSuccessResponse
753
754操作菜单的响应结果。
755
756**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
757
758**系统能力:** SystemCapability.ArkUI.ArkUI.Full
759
760| 名称  | 类型   | 必填 | 说明                                     |
761| ----- | ------ | ---- | ---------------------------------------- |
762| index | number | 是   | 选中按钮在buttons数组中的索引,从0开始。 |
763
764## CustomDialogOptions<sup>11+</sup>
765
766自定义弹窗的内容,继承自[BaseDialogOptions](#basedialogoptions11)。
767
768**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
769
770**系统能力:** SystemCapability.ArkUI.ArkUI.Full
771
772| 名称    | 类型                                                    | 必填 | 说明                                                         |
773| ------- | ------------------------------------------------------- | ---- | ------------------------------------------------------------ |
774| builder | [CustomBuilder](arkui-ts/ts-types.md#custombuilder8) | 是  | 设置自定义弹窗的内容。<br/>**说明:** <br/>builder需要赋值为箭头函数,格式如下:() => { this.XXX() },其中XXX是内部builder名。<br/>如果是全局builder需要在组件内部创建一个builder,在内部builder中调用全局builder。<br/>builder根节点宽高百分比相对弹框容器大小。<br/>builder非根节点宽高百分比相对父节点大小。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 |
775| backgroundColor <sup>12+</sup>| [ResourceColor](arkui-ts/ts-types.md#resourcecolor)  | 否 | 设置弹窗背板颜色。<br/>默认值:Color.Transparent<br/>**说明:** <br/>当设置了backgroundColor为非透明色时,backgroundBlurStyle需要设置为BlurStyle.NONE,否则颜色显示将不符合预期效果。 |
776| cornerRadius<sup>12+</sup>| [Dimension](arkui-ts/ts-types.md#dimension10)&nbsp;\|&nbsp;[BorderRadiuses](arkui-ts/ts-types.md#borderradiuses9) | 否 | 设置背板的圆角半径。<br />可分别设置4个圆角的半径。<br />默认值:{ topLeft: '32vp', topRight: '32vp', bottomLeft: '32vp', bottomRight: '32vp' }<br /> 圆角大小受组件尺寸限制,最大值为组件宽或高的一半,若值为负,则按照默认值处理。 <br /> 百分比参数方式:以父元素弹窗宽和高的百分比来设置弹窗的圆角。|
777| borderWidth<sup>12+</sup>| [Dimension](arkui-ts/ts-types.md#dimension10)&nbsp;\|&nbsp;[EdgeWidths](arkui-ts/ts-types.md#edgewidths9)  | 否 | 设置弹窗背板的边框宽度。<br />可分别设置4个边框宽度。<br />默认值:0<br /> 百分比参数方式:以父元素弹窗宽的百分比来设置弹窗的边框宽度。<br />当弹窗左边框和右边框大于弹窗宽度,弹窗上边框和下边框大于弹窗高度,显示可能不符合预期。 |
778| borderColor<sup>12+</sup> | [ResourceColor](arkui-ts/ts-types.md#resourcecolor)&nbsp;\|&nbsp;[EdgeColors](arkui-ts/ts-types.md#edgecolors9)  | 否 | 设置弹窗背板的边框颜色。<br/>默认值:Color.Black<br/> 如果使用borderColor属性,需要和borderWidth属性一起使用。 |
779| borderStyle<sup>12+</sup> | [BorderStyle](arkui-ts/ts-appendix-enums.md#borderstyle)&nbsp;\|&nbsp;[EdgeStyles](arkui-ts/ts-types.md#edgestyles9)  | 否 | 设置弹窗背板的边框样式。<br/>默认值:BorderStyle.Solid<br/> 如果使用borderStyle属性,需要和borderWidth属性一起使用。 |
780| width<sup>12+</sup> | [Dimension](arkui-ts/ts-types.md#dimension10) | 否   | 设置弹窗背板的宽度。<br />**说明:**<br>- 弹窗宽度默认最大值:400vp。<br />- 百分比参数方式:弹窗参考宽度为所在窗口的宽度,在此基础上调小或调大。|
781| height<sup>12+</sup> | [Dimension](arkui-ts/ts-types.md#dimension10)  | 否   | 设置弹窗背板的高度。<br />**说明:**<br />- 弹窗高度默认最大值:0.9 *(窗口高度 - 安全区域)。<br />- 百分比参数方式:弹窗参考高度为(窗口高度 - 安全区域),在此基础上调小或调大。|
782| shadow<sup>12+</sup>| [ShadowOptions](arkui-ts/ts-universal-attributes-image-effect.md#shadowoptions对象说明)&nbsp;\|&nbsp;[ShadowStyle](arkui-ts/ts-universal-attributes-image-effect.md#shadowstyle10枚举说明)   | 否 | 设置弹窗背板的阴影。<br />当设备为2in1时,默认场景下获焦阴影值为ShadowStyle.OUTER_FLOATING_MD,失焦为ShadowStyle.OUTER_FLOATING_SM |
783| backgroundBlurStyle<sup>12+</sup> | [BlurStyle](arkui-ts/ts-universal-attributes-background.md#blurstyle9)                 | 否   | 弹窗背板模糊材质。<br/>默认值:BlurStyle.COMPONENT_ULTRA_THICK<br/>**说明:** <br/>设置为BlurStyle.NONE即可关闭背景虚化。当设置了backgroundBlurStyle为非NONE值时,则不要设置backgroundColor,否则颜色显示将不符合预期效果。 |
784
785## BaseDialogOptions<sup>11+</sup>
786
787弹窗的选项。
788
789**系统能力:** SystemCapability.ArkUI.ArkUI.Full
790
791| 名称            | 类型                                                         | 必填 | 说明                                                         |
792| --------------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
793| maskRect        | [Rectangle](arkui-ts/ts-methods-alert-dialog-box.md#rectangle8类型说明) | 否   | 弹窗遮蔽层区域。<br/>默认值:{ x: 0, y: 0, width: '100%', height: '100%' }<br/>**说明:**<br/>showInSubWindow为true时,maskRect不生效。 <br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。|
794| alignment       | [DialogAlignment](arkui-ts/ts-methods-alert-dialog-box.md#dialogalignment枚举说明) | 否   | 弹窗在竖直方向上的对齐方式。<br>默认值:DialogAlignment.Default <br/>**说明**:<br/>若在UIExtension中设置showInSubWindow为true, 弹窗将基于UIExtension的宿主窗口对齐。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。|
795| offset          | [Offset](arkui-ts/ts-types.md#offset)                     | 否   | 弹窗相对alignment所在位置的偏移量。<br/>默认值:{&nbsp;dx:&nbsp;0&nbsp;,&nbsp;dy:&nbsp;0&nbsp;} <br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。|
796| isModal         | boolean                                                      | 否   | 弹窗是否为模态窗口,模态窗口有蒙层,非模态窗口无蒙层。<br/>默认值:true,此时弹窗有蒙层。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 |
797| showInSubWindow | boolean                                                      | 否   | 某弹框需要显示在主窗口之外时,是否在子窗口显示此弹窗。<br/>默认值:false,弹窗显示在应用内,而非独立子窗口。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 |
798| onWillDismiss<sup>12+</sup> | Callback<[DismissDialogAction](#dismissdialogaction12)> | 否 | 交互式关闭回调函数。<br/>**说明:**<br/>1.当用户执行点击遮障层关闭、左滑/右滑、三键back、键盘ESC关闭交互操作时,如果注册该回调函数,则不会立刻关闭弹窗。在回调函数中可以通过reason得到阻拦关闭弹窗的操作类型,从而根据原因选择是否能关闭弹窗。当前组件返回的reason中,暂不支持CLOSE_BUTTON的枚举值。<br/>2.在onWillDismiss回调中,不能再做onWillDismiss拦截。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 |
799|  autoCancel<sup>12+</sup> |       boolean                                   | 否   | 点击遮障层时,是否关闭弹窗,true表示关闭弹窗。false表示不关闭弹窗。<br/>默认值:true<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 |
800|  maskColor<sup>12+</sup> |        [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否    | 自定义蒙层颜色。<br>默认值: 0x33000000 <br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。             |
801| transition<sup>12+</sup>          | [TransitionEffect](arkui-ts/ts-transition-animation-component.md#transitioneffect10) | 否   | 设置弹窗显示和退出的过渡效果。<br/>**说明:**<br/> 1.如果不设置,则使用默认的显示/退出动效。<br/> 2.显示动效中按back键,打断显示动效,执行退出动效,动画效果为显示动效与退出动效的曲线叠加后的效果。<br/> 3.退出动效中按back键,不会打断退出动效,退出动效继续执行,继续按back键退出应用。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。|
802| onDidAppear<sup>12+</sup> | () => void | 否 | 弹窗弹出时的事件回调。<br />**说明:**<br />1.正常时序依次为:onWillAppear>>onDidAppear>>(onDateAccept/onCancel/onDateChange)>>onWillDisappear>>onDidDisappear。<br />2.在onDidAppear内设置改变弹窗显示效果的回调事件,二次弹出生效。<br />3.快速点击弹出,消失弹窗时,存在onWillDisappear在onDidAppear前生效。<br />4. 当弹窗入场动效未完成时关闭弹窗,该回调不会触发。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 |
803| onDidDisappear<sup>12+</sup> | () => void | 否 | 弹窗消失时的事件回调。<br />**说明:**<br />正常时序依次为:onWillAppear>>onDidAppear>>(onDateAccept/onCancel/onDateChange)>>onWillDisappear>>onDidDisappear。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 |
804| onWillAppear<sup>12+</sup> | () => void | 否 | 弹窗显示动效前的事件回调。<br />**说明:**<br />1.正常时序依次为:onWillAppear>>onDidAppear>>(onDateAccept/onCancel/onDateChange)>>onWillDisappear>>onDidDisappear。<br />2.在onWillAppear内设置改变弹窗显示效果的回调事件,二次弹出生效。 <br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。|
805| onWillDisappear<sup>12+</sup> | () => void | 否 | 弹窗退出动效前的事件回调。<br />**说明:**<br />1.正常时序依次为:onWillAppear>>onDidAppear>>(onDateAccept/onCancel/onDateChange)>>onWillDisappear>>onDidDisappear。<br />2.快速点击弹出,消失弹窗时,存在onWillDisappear在onDidAppear前生效。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 |
806| keyboardAvoidMode<sup>12+</sup> | [KeyboardAvoidMode](./arkui-ts/ts-types.md#keyboardavoidmode12枚举说明) | 否 | 用于设置弹窗是否在拉起软键盘时进行自动避让。<br/>默认值:KeyboardAvoidMode.DEFAULT<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 |
807| enableHoverMode<sup>14+</sup>   | boolean | 否   | 是否响应悬停态。<br />默认值:false,默认不响应。<br/>**原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。|
808| hoverModeArea<sup>14+</sup>     | [HoverModeAreaType](arkui-ts/ts-appendix-enums.md#hovermodeareatype14) | 否   | 悬停态下弹窗默认展示区域。<br />默认值:HoverModeAreaType.BOTTOM_SCREEN<br/>**原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。|
809| keyboardAvoidDistance<sup>15+</sup>       | [LengthMetrics](js-apis-arkui-graphics.md#lengthmetrics12) | 否   | 弹窗避让键盘后,和键盘之间的距离。<br />**说明:**<br />- 默认值:16vp。<br />- 默认单位:vp。<br />- 当且仅当keyboardAvoidMode属性设置为DEFAULT时生效。<br/>**原子化服务API:** 从API version 15开始,该接口支持在原子化服务中使用。|
810| levelMode<sup>15+</sup>       | [LevelMode](#levelmode15枚举说明) | 否   | 设置弹窗显示层级。<br />**说明:**<br />- 默认值:LevelMode.OVERLAY。<br />- 当且仅当showInSubWindow属性设置为false时生效。<br/>**原子化服务API:** 从API version 15开始,该接口支持在原子化服务中使用。|
811| levelUniqueId<sup>15+</sup>       | number | 否   | 设置页面级弹窗需要显示的层级下的[节点 uniqueId](js-apis-arkui-frameNode.md#getuniqueid12)。<br />**说明:**<br />- 当且仅当levelMode属性设置为LevelMode.EMBEDDED时生效。<br/>**原子化服务API:** 从API version 15开始,该接口支持在原子化服务中使用。|
812| immersiveMode<sup>15+</sup>       | [ImmersiveMode](#immersivemode15枚举说明) | 否   | 设置页面内弹窗蒙层效果。<br />**说明:**<br />- 默认值:ImmersiveMode.DEFAULT <br />- 当且仅当levelMode属性设置为LevelMode.EMBEDDED时生效。<br/>**原子化服务API:** 从API version 15开始,该接口支持在原子化服务中使用。|
813
814## DismissDialogAction<sup>12+</sup>
815
816Dialog关闭的信息。
817
818**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
819
820**系统能力:** SystemCapability.ArkUI.ArkUI.Full
821
822### 属性
823
824| 名称    | 类型                                                         | 可读 | 可写 | 说明                                                         |
825| ------- | ------------------------------------------------------------ | ---- | ---- | ------------------------------------------------------------ |
826| dismiss | Callback&lt;void&gt;                                         | 否   | 否   | Dialog关闭回调函数。开发者需要退出时调用,不需要退出时无需调用。 |
827| reason  | [DismissReason](#dismissreason12枚举说明) | 否   | 否   | Dialog无法关闭原因。根据开发者需要选择不同操作下,Dialog是否需要关闭。 |
828
829## DismissReason<sup>12+</sup>枚举说明
830
831**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
832
833**系统能力:** SystemCapability.ArkUI.ArkUI.Full
834
835| 名称          | 值   | 描述                                                         |
836| ------------- | ---- | ------------------------------------------------------------ |
837| PRESS_BACK    | 0    | 点击三键back、左滑/右滑、键盘ESC。                           |
838| TOUCH_OUTSIDE | 1    | 点击遮障层时。                                               |
839| CLOSE_BUTTON  | 2    | 点击关闭按钮。                                               |
840| SLIDE_DOWN    | 3    | 下拉关闭。<br/>**说明:** <br/>该接口仅支持在[半模态转场](./arkui-ts/ts-universal-attributes-sheet-transition.md)中使用。 |
841
842## LevelMode<sup>15+</sup>枚举说明
843
844弹窗显示层级模式。
845
846**原子化服务API:** 从API version 15开始,该接口支持在原子化服务中使用。
847
848**系统能力:** SystemCapability.ArkUI.ArkUI.Full
849
850| 名称    | 值   | 说明                                             |
851| ------- | ---- | ------------------------------------------------ |
852| OVERLAY | 0    | 弹窗层级为应用窗口根节点,应用内路由导航切换弹窗不隐藏。 |
853| EMBEDDED    | 1    | 弹窗节点为页面内路由/导航下的节点,随路由导航切换,弹窗随页面隐藏。|
854
855## ImmersiveMode<sup>15+</sup>枚举说明
856
857页面内弹窗蒙层显示区域模式。
858
859**原子化服务API:** 从API version 15开始,该接口支持在原子化服务中使用。
860
861**系统能力:** SystemCapability.ArkUI.ArkUI.Full
862
863| 名称    | 值   | 说明                                             |
864| ------- | ---- | ------------------------------------------------ |
865| DEFAULT | 0    | 弹窗蒙层遵循父节点布局约束进行显示。 |
866| EXTEND    | 1    | 弹窗蒙层可扩展至覆盖状态栏和导航条。
867
868## Button
869
870菜单中的菜单项按钮。
871
872**系统能力:** SystemCapability.ArkUI.ArkUI.Full
873
874| 名称    | 类型                                       | 必填   | 说明      |
875| ----- | ---------------------------------------- | ---- | ------- |
876| text  | string&nbsp;\|&nbsp; [Resource](arkui-ts/ts-types.md#resource类型) | 是    | 按钮文本内容。<br />**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
877| color | string&nbsp;\| &nbsp;[Resource](arkui-ts/ts-types.md#resource类型) | 是    | 按钮文本颜色。<br />**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
878| primary<sup>12+</sup> | boolean | 否    | 在弹窗获焦且未进行tab键走焦时,按钮是否默认响应Enter键。多个Button时,只允许一个Button的该字段配置为true,否则所有Button均不响应。多重弹窗可自动获焦连续响应。<br />**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 |