harmony-utils之DialogUtil,弹窗工具类

简介: DialogUtil 是 HarmonyOS 工具库 harmony-utils 中的弹窗工具类,提供丰富的弹窗样式与功能,包括确认框、选择器、日期时间选择等。支持自定义样式与按钮行为,帮助开发者快速构建交互友好的鸿蒙应用界面。

harmony-utils之DialogUtil,弹窗工具类

harmony-utils 简介与说明


harmony-utils 一款功能丰富且极易上手的HarmonyOS工具库,借助众多实用工具类,致力于助力开发者迅速构建鸿蒙应用。其封装的工具涵盖了APP、设备、屏幕、授权、通知、线程间通信、弹框、吐司、生物认证、用户首选项、拍照、相册、扫码、文件、日志,异常捕获、字符、字符串、数字、集合、日期、随机、base64、加密、解密、JSON等一系列的功能和操作,能够满足各种不同的开发需求。
picker_utils 是harmony-utils拆分出来的一个子库,包含PickerUtil、PhotoHelper、ScanUtil。

下载安装
ohpm i @pura/harmony-utils
ohpm i @pura/picker_utils

  //全局初始化方法,在UIAbility的onCreate方法中初始化 AppUtil.init()
  onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
    AppUtil.init(this.context);
  }

API方法与使用


setDefaultConfig 设置默认统一样式
DialogUtil.setDefaultConfig((config) => {
  config.title = "温馨提示"
  config.subtitle = "弹窗副标题"
  config.alignment = DialogAlignment.Top
  config.borderWidth = 1.2
  config.autoCancel = true
});

DialogUtil.setDefaultConfig((config) => {
  config.title = "友好提示"
  config.alignment = DialogAlignment.Center
  config.borderWidth = 1
  config.borderColor = Color.Blue
});

DialogUtil.setDefaultConfig((config) => {
  config.title = "提示"
  config.alignment = DialogAlignment.Bottom
  config.borderColor = Color.Blue
  config.borderWidth = 0
  config.autoCancel = false
});
showConfirmDialog 显示弹窗(一个按钮)
DialogUtil.showConfirmDialog({
  title: "温馨提示",
  message: 'APP已更新最新版本!',
  confirm: "确定",
  onAction: () => {
    ToastUtil.showToast("点击了“确定”按钮");
  }
});

DialogUtil.showConfirmDialog({
  backCancel: false,
  title: "温馨提示",
  message: 'APP已更新最新版本!',
  confirm: {
    value: "确定",
    action: () => {
      ToastUtil.showToast("点击了“确定”按钮");
    }
  }
});
showPrimaryDialog 显示弹窗(两个按钮)
DialogUtil.showPrimaryDialog({
  message: '最新版本可提供更多的工具和功能,欢迎下载更新!!!',
  primaryButton: "取消",
  secondaryButton: "更新",
  onAction: (action) => {
    if (action == DialogAction.ONE) {
      ToastUtil.showToast("点击了“取消”按钮");
    } else if (action == DialogAction.TWO) {
      ToastUtil.showToast("点击了“更新”按钮");
    }
  }
});

DialogUtil.showPrimaryDialog({
  title: "温馨提示",
  message: '最新版本可提供更多的工具和功能,欢迎下载更新!',
  primaryButton: {
    value: "取消",
    fontColor: Color.Black,
    action: () => {
      ToastUtil.showToast("点击了“取消”按钮");
    }
  },
  secondaryButton: {
    value: "更新",
    fontColor: Color.Red,
    action: () => {
      ToastUtil.showToast("点击了“更新”按钮");
    }
  },
  onWillDismiss: (dismissDialogAction: DismissDialogAction) => {
    LogUtil.error("onWillDismiss: " + JSON.stringify(dismissDialogAction))
  }
});
showDialog 显示弹窗(可多个按钮)
DialogUtil.showDialog({
  title: "温馨提示",
  message: "最新版本可提供更多的工具和功能",
  buttons: ["取消", "稍后", "更新", "升级"],
  onAction: (action) => {
    ToastUtil.showToast(`点击了:${buttons[Math.abs(action)-1]}`);
  }
});

DialogUtil.showDialog({
  title: "温馨提示",
  message: "最新版本可提供更多的工具和功能",
  buttonDirection: DialogButtonDirection.HORIZONTAL,
  buttons: [{
    value: "取消",
    fontColor: Color.Blue,
    action: () => {
      ToastUtil.showToast(`点击了"取消"`);
    }
  }, {
    value: "稍后",
    fontColor: Color.Green,
    action: () => {
      ToastUtil.showToast(`点击了"稍后"`);
    }
  }, {
    value: "更新",
    fontColor: Color.Red,
    action: () => {
      ToastUtil.showToast(`点击了"更新"`);
    }
  }]
});
showActionSheet 列表选择弹窗
DialogUtil.showActionSheet({
  message: "请选择",
  sheets: ["功能菜单一", "功能菜单二", "功能菜单三", "功能菜单四", "功能菜单五"],
  onAction: (index) => {
    ToastUtil.showToast("index: " + index);
  }
});
showCalendarPicker 日历选择器弹窗
let date = DateUtil.getToday();
DialogUtil.showCalendarPicker({
  selected: date,
  onAccept: (value) => {
    LogUtil.error(`选择了: ${JSON.stringify(value)}}`);
    ToastUtil.showToast(DateUtil.getFormatDateStr(value, "yyyy年MM月dd日"));
  },
  onCancel: () => {
    ToastUtil.showToast(`取消了`);
  }
});
showDatePicker 日期滑动选择器弹窗
let date = DateUtil.getToday();
DialogUtil.showDatePicker({
  selected: date,
  showTime: true,
  onDateAccept: (value) => {
    LogUtil.error(`选择了: ${JSON.stringify(value)}}`);
    ToastUtil.showToast(DateUtil.getFormatDateStr(value, "yyyy年MM月dd日 HH:mm"));
  },
  onCancel: () => {
    ToastUtil.showToast(`取消了`);
  }
});
showTimePicker 时间滑动选择器弹窗
let date = DateUtil.getToday();
DialogUtil.showTimePicker({
  selected: date,
  format: TimePickerFormat.HOUR_MINUTE,
  useMilitaryTime: true,
  onAccept: (value) => {
    LogUtil.error(`选择了: ${JSON.stringify(value)}}`);
    ToastUtil.showToast(`${value.hour}时${value.minute}分`);
  },
  onCancel: () => {
    ToastUtil.showToast(`取消了`);
  }
});
showTextPicker 文本滑动选择器弹窗
private readonly array: string[] = ["黑龙江省", "哈尔滨市", "道里区", "砂山", "砀山", "高薪区"];
@State selectValue: string = '';

DialogUtil.showTextPicker({
  range: array,
  value: this.selectValue,
  onAccept: (result) => {
    LogUtil.error(`选择了: ${JSON.stringify(result)}}`);
    this.selectValue = result.value as string;
    ToastUtil.showToast(`${this.selectValue}`);
  },
  onCancel: () => {
    ToastUtil.showToast(`取消了`);
  }
});

创作不易,请给童长老点赞👍


https://github.com/787107497/harmony-utils
https://gitee.com/tongyuyan/harmony-utils
OpenHarmony三方库

目录
相关文章
|
数据安全/隐私保护 开发者 UED
HarmonyOSNext华为账号一键登录:3秒完成登录的黑科技!
HarmonyOS Next华为账号一键登录,基于OAuth 2.0协议,实现3秒极速登录,支持UnionID与真实手机号获取,提升用户体验并简化开发者用户体系搭建。适用于教育科普行业学习参考。
1098 0
|
缓存 数据安全/隐私保护 JavaScript
【HarmonyOS 5】鸿蒙页面和组件生命周期函数
【HarmonyOS 5】鸿蒙页面和组件生命周期函数
472 0
鸿蒙开发:实现popup弹窗
目前提供了两种方式实现popup弹窗,主推系统实现的方式,几乎能满足我们常见的所有场景,当然了,文章毕竟有限,尽量还是以官网为主。
481 2
鸿蒙开发:实现popup弹窗
|
人工智能 文字识别 安全
Qwen开源视觉推理模型QVQ,更睿智地看世界!
在人类的思维中,语言和视觉紧密交织,塑造着我们感知和理解世界的方式。我们的推理能力深深植根于语言思维和视觉记忆之中。那么,当我们将这些能力赋予人工智能时,会发生什么呢?如今的大语言模型已经展现出卓越的推理能力,但我们不禁思考:它们能否通过掌握视觉理解的力量,攀登认知能力的新高峰?
1827 5
Qwen开源视觉推理模型QVQ,更睿智地看世界!
|
JSON Dart 前端开发
鸿蒙应用开发从入门到入行 - 篇7:http网络请求
在本篇文章里,您将掌握鸿蒙开发工具DevEco的基本使用、ArkUI里的基础组件,并通过制作一个简单界面掌握使用
1152 8
|
Android开发
Android开发表情emoji功能开发
本文介绍了一种在Android应用中实现emoji表情功能的方法,通过将图片与表情字符对应,实现在`TextView`中的正常显示。示例代码展示了如何使用自定义适配器加载emoji表情,并在编辑框中输入或删除表情。项目包含完整的源码结构,可作为开发参考。视频演示和源码详情见文章内链接。
532 4
Android开发表情emoji功能开发
|
IDE JavaScript 开发工具
一、鸿蒙应用开发快速体验
本文介绍了鸿蒙应用开发的快速体验流程,涵盖从开发环境的准备到项目的实际运行。首先,需安装并配置华为DevEco Studio IDE,该IDE基于IntelliJ IDEA Community构建,旨在为鸿蒙应用开发提供一站式解决方案。接着,通过创建新项目、选择合适的模板及配置项目信息,可以迅速搭建起应用的基本框架。最后,本文还详细描述了如何利用Preview预览、模拟器运行以及真机调试三种方式来测试和优化应用,确保其在不同场景下的兼容性和性能表现。整个过程旨在帮助开发者快速入门鸿蒙应用开发,提升开发效率。
579 0
一、鸿蒙应用开发快速体验
|
程序员 开发工具 git
HUAWEI DevEco Studio 编辑器 高效率技巧大全
HUAWEI DevEco Studio 编辑器 高效率技巧大全
517 0
|
自然语言处理 Java API
如何在Java中实现多语言国际化支持
如何在Java中实现多语言国际化支持
1018 1
|
设计模式 缓存 监控
详细介绍Hystrix的概念、作用、使用方法
Hystrix 通过这些核心类和接口实现了断路器模式,提供了线程池隔离、请求缓存、服务降级等功能。每个命令在执行时都会被封装为一个 HystrixCommand 实例,并在一个独立的线程池中执行。
1535 1

热门文章

最新文章