HarmonyOS promptAction.openCustomDialog外部代理UI实现问题
在做自定义弹窗实现时,往往部分弹窗内部UI内容需要外部实现,但是DialogOptions不能传递@BuilderParam类型参数,代码如下:
import { ComponentContent, promptAction } from '@kit.ArkUI'
@Builder
export function buildCustomDialog(options: promptAction.BaseDialogOptions) {
MyCustomDialog({ options: options })
}
@CustomDialog
export struct MyCustomDialog {
controller?: CustomDialogController
options?: promptAction.BaseDialogOptions
@BuilderParam builder: () => void = this.defaultBuilder // 这个参数如何传递过来?
build() {
Column() {
this.builder()
}
.backgroundColor(Color.Blue)
}
@Builder
defaultBuilder() {
Text('默认弹窗内容')
.width('100%')
.height(150)
.fontColor(Color.White)
}
}
@Entry
@Component
struct Index {
build() {
Column() {
Text('点击打开一个弹窗')
.height(88)
.width('100%')
.backgroundColor('#fafafc')
.onClick(() => {
const options: promptAction.BaseDialogOptions = {}
const content = new ComponentContent(this.getUIContext(), wrapBuilder(buildCustomDialog), options)
this.getUIContext().getPromptAction().openCustomDialog(content)
})
}
.height('100%')
.width('100%')
}
}
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
HarmonyOS promptAction.openCustomDialog问题
159浏览 • 1回复 待解决
HarmonyOS promptAction.openCustomDialog的绑定问题
792浏览 • 1回复 待解决
HarmonyOS promptAction.openCustomDialog相关问题咨询
285浏览 • 1回复 待解决
HarmonyOS 关于封装promptAction.openCustomDialog问题
264浏览 • 1回复 待解决
HarmonyOS promptAction.openCustomDialog点击外部区域时不能自动取消
829浏览 • 1回复 待解决
HarmonyOS 封装全局 promptAction.openCustomDialog
255浏览 • 1回复 待解决
promptAction.openCustomDialog 全局弹窗
798浏览 • 1回复 待解决
HarmonyOS 关于promptAction.openCustomDialog创建弹窗的问题
263浏览 • 1回复 待解决
HarmonyOS 使用全局弹窗api问题promptAction.openCustomDialog
97浏览 • 1回复 待解决
HarmonyOS promptAction.openCustomDialog自定义弹窗在非UI类中调用问题
169浏览 • 1回复 待解决
promptAction.openCustomDialog 自定义弹窗
532浏览 • 1回复 待解决
HarmonyOS promptAction.openCustomDialog弹窗一直存在
438浏览 • 1回复 待解决
HarmonyOS promptAction.openCustomDialog 自定义宽度&圆角
765浏览 • 1回复 待解决
实现promptAction.openCustomDialog接口,全局调用自定义弹窗打开
2057浏览 • 1回复 待解决
HarmonyOS 如何在 promptAction.openCustomDialog 自定义弹窗中实现动画?
320浏览 • 1回复 待解决
HarmonyOS promptAction.openCustomDialog支持选择关闭弹窗方式吗?
771浏览 • 1回复 待解决
HarmonyOS promptAction.openCustomDialog 弹窗如何宽度设置全屏宽?
402浏览 • 1回复 待解决
HarmonyOS promptAction.openCustomDialog的自定义Dialog怎么实现状态变化
183浏览 • 1回复 待解决
HarmonyOS promptAction.openCustomDialog 无法监听点击遮罩区域的事件
864浏览 • 1回复 待解决
HarmonyOS promptAction.openCustomDialog圆角无法修改,当前圆角太大了
525浏览 • 1回复 待解决
HarmonyOS promptAction.openCustomDialog如何实现点击弹窗阴影区域时弹窗不关闭
155浏览 • 1回复 待解决
HarmonyOS promptAction.openCustomDialog 如何让其宽度高度撑满整个屏幕
244浏览 • 1回复 待解决
HarmonyOS promptAction.openCustomDialog是否可以加一个autoCancel的属性?
442浏览 • 1回复 待解决
目前规格如此,可通过promptAction.openCustomDialog创建CustomDialog的方式刷新弹窗内容,点击页面中的两个的hello文本,会触发点击事件实现弹窗内容的动态刷新。参考示例如下:
@BuilderParam装饰的方法只能被自定义构建函数(@Builder装饰的方法)初始化。
@BuilderParam装饰的方法可以是有参数和无参数的两种形式,需与指向的@Builder方法类型匹配。
@BuilderParam装饰的方法类型需要和@Builder方法类型一致。
具体参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/arkts-builderparam-0000001820999553