HarmonyOS 鸿蒙Next 自定义弹窗选择

发布于 1周前 作者 yibo5220 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 自定义弹窗选择 在API文档里看到了三种弹框实现,有CustomDialog需要用controller(提取封装比较繁琐暂不考虑),还有两种openCuctomDialog;

请问UIcontext里的openCuctomDialog与@ohos.promptAction里的openCustomDialog有什么使用场景上的区别,比如我要做全局自定义dialog不依赖于组件甚至在class中调用应该选择哪种?目前看好像UIcontext里的openCuctomDialog比较合适,但是UIContext里支持的自定义功能并不多,比如弹框背景圆角、宽高、边框等设置,对比CustomDialogOptions;

请问以后自定义dialog的演进是以UIcontext里的openCuctomDialog为准还是以@ohos.promptAction里的openCustomDialog为准。


更多关于HarmonyOS 鸿蒙Next 自定义弹窗选择的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

您好,自定义全局的dialog演进是以UIcontext里的openCuctomDialog为准,可以不绑定组件,直接使用;

但是UIContext里支持的自定义功能并不多, 比如弹框背景圆角、宽高、边框等设置。可以自定义一个Builder,在里面做弹框背景圆角、宽高、边框等设置,参考示例如下:

import { BusinessError } from '@ohos.base';

import { ComponentContent } from "@ohos.arkui.node";

class Params {

text: string = "";

constructor(text: string) {
  this.text = text;
}
}

@Builder
function buildText(params: Params) {

Column() {

Text(params.text)
.fontSize(50)
.fontWeight(FontWeight.Bold)
.margin({bottom: 36})
}.backgroundColor('#FFF0F0F0')

}

@Entry
@Component
struct Index {

@State message: string = "hello"

build() {

Row() {

Column() {

Button("click me")
.onClick(() => {

let uiContext = this.getUIContext();

let promptAction = uiContext.getPromptAction();

let contentNode = new ComponentContent(uiContext, wrapBuilder(buildText), new Params(this.message));

try {

promptAction.openCustomDialog(contentNode);

} catch (error) {

let message = (error as BusinessError).message;
let code = (error as BusinessError).code;

console.error(`OpenCustomDialog args error code is ${code}, message is ${message}`);

};
})

}
.width('100%')
.height('100%')
}

.height('100%')
}

更多关于HarmonyOS 鸿蒙Next 自定义弹窗选择的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


针对帖子标题“HarmonyOS 鸿蒙Next 自定义弹窗选择”的问题,以下是在鸿蒙系统中实现自定义弹窗选择的一些关键点:

在HarmonyOS鸿蒙Next中,自定义弹窗通常涉及到UI组件的自定义以及弹窗逻辑的实现。要实现自定义弹窗选择,你可以遵循以下步骤:

  1. 定义弹窗布局:使用XML或JavaScript(如果你在使用ArkUI框架)来定义弹窗的布局。这包括设置弹窗的样式、大小、位置以及包含的选择项等。

  2. 创建弹窗组件:在代码中创建弹窗组件实例,并绑定之前定义的布局。

  3. 实现弹窗逻辑:编写代码来处理弹窗的显示、隐藏以及用户选择后的逻辑处理。这可能涉及到监听用户点击事件,并根据点击的选择项执行相应的操作。

  4. 调用弹窗:在需要显示弹窗的地方调用相关方法,将弹窗显示出来供用户选择。

请注意,鸿蒙系统的UI框架和组件可能与传统的Android或iOS有所不同,因此你需要熟悉鸿蒙系统的开发文档和API。

如果在实现过程中遇到具体问题,如布局不显示、事件监听无效等,你可能需要检查布局文件、组件属性设置以及事件处理逻辑是否正确。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部