当前位置:   article > 正文

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Dialog对话框组件_arkui 弹框

arkui 弹框

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Dialog对话框组件

一、操作环境

操作系统:  Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1

二、Dialog对话框组件

对话框的使用场景也很高频,比如 APP 上架应用市场要求 APP 首次启动要有服务协议和隐私权限提示弹框等,ArkUI开发框架提供了两种方式显示一个对话框,一种是使用 @ohos.promptAction 模块里提供的 API 显示,另一种是使用全局对话框 AlertDialog 显示。

  • 使用 @ohos.promptAction 模块里提供的 showDialog

  1. declare namespace prompt {
  2. // 显示一个对话框
  3. function showDialog(options: ShowDialogOptions, callback: AsyncCallback<ShowDialogSuccessResponse>):void;
  4. }
  5. interface ShowDialogOptions { // 对话框配置
  6. title?: string; // 标题
  7. message?: string; // 内容
  8. buttons?: [Button, Button?, Button?];// 按钮
  9. }
  10. interface Button { // 对话框按钮配置
  11. text: string; // 按钮文字
  12. color: string; // 按钮颜色
  13. }
  14. interface ShowDialogSuccessResponse { // 成功回调
  15. index: number;
  16. }
  • options:显示对话框的配置项, ShowDialogOptions 说明如下:

    • title:对话框的标题。
    • message:对话框的内容。
    • buttons:对话框上的按钮,至少配置一个,最多三个。

call:事件回调,并显示对话框的点击下标

  1. import promptAction from '@ohos.promptAction';
  2. @Entry @Component struct ToastTest {
  3. build() {
  4. Column({space: 10}) {
  5. Button("show dialog")
  6. .onClick(() => {
  7. promptAction.showDialog({
  8. title: "对话框标题",
  9. message: "对话框内容",
  10. buttons: [
  11. {
  12. text: "第一个按钮",
  13. color: "#aabbcc"
  14. },
  15. {
  16. text: "第二个按钮",
  17. color: "#bbccaa"
  18. },
  19. {
  20. text: "第三个按钮",
  21. color: "#ccaabb"
  22. }
  23. ]
  24. }, (error, index) => {
  25. var msg = error ? JSON.stringify(error) : "index: " + index;
  26. promptAction.showToast({
  27. message: msg
  28. })
  29. });
  30. })
  31. }
  32. .width('100%')
  33. .height('100%')
  34. .padding(10)
  35. }
  36. }

三、全局对话框 AlertDialog

除了使用 @ohos.promptAction  模块提供的 API 可以显示一个对话框外,还可以使用全局对话框 AlertDialog , AlertDialog 的源码其定义如下:

  1. declare class AlertDialog {
  2. // 显示一个对话框
  3. static show(value: AlertDialogParamWithConfirm | AlertDialogParamWithButtons);
  4. }

方法

show:显示一个对话框,参数 value 支持 AlertDialogParamWithConfirm 和 AlertDialogParamWithButtons,它们都继承自 AlertDialogParam , AlertDialogParam 定义如下:

  1. declare interface AlertDialogParam {
  2. title?: ResourceStr;
  3. message: ResourceStr;
  4. autoCancel?: boolean;
  5. cancel?: () => void;
  6. alignment?: DialogAlignment;
  7. offset?: Offset;
  8. gridCount?: number;
  9. }

属性
  • title:设置对话框的标题。
  • message:设置对话框显示的内容。
  • autoCancel:点击蒙层是否隐藏对话框。
  • cancel:点击蒙层的事件回调。
  • alignment:对话框的对齐方式。
  • offset:对话框相对于 alignment 的偏移量。
  • gridCount:对话框宽度所占用栅格数。

示例
  1. import prompt from '@ohos.prompt';
  2. @Entry @Component struct PromptTest {
  3. build() {
  4. Column({ space: 10 }) {
  5. Button("show dialog")
  6. .onClick(() => {
  7. AlertDialog.show({
  8. title: "对话框标题",
  9. message: "对话框内容",
  10. autoCancel: true, // 点击蒙层,隐藏对话框
  11. cancel: () => { // 点击蒙层的事件回调
  12. prompt.showToast({
  13. message: "点击蒙层消失"
  14. })
  15. },
  16. alignment: DialogAlignment.Bottom, // 设置对话框底部对齐
  17. offset: { dx: 0, dy: -20}, // 在Y轴方向上的偏移量
  18. confirm: {
  19. value: "确定按钮",
  20. fontColor: "#ff0000",
  21. backgroundColor: "#ccaabb",
  22. action: () => {
  23. prompt.showToast({
  24. message: "点击按钮消失"
  25. })
  26. }
  27. }
  28. });
  29. })
  30. }
  31. .width('100%')
  32. .height('100%')
  33. .padding(10)
  34. }
  35. }

好了就写到这吧!

你有时间常去我家看看我在这里谢谢你啦...

我家地址:亚丁号

最后送大家一首诗:

山高路远坑深,
大军纵横驰奔,

谁敢横刀立马?
惟有点赞加关注大军。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/124429
推荐阅读
相关标签
  

闽ICP备14008679号