自定义弹窗使用相关问题

自定义弹窗中使用@BuilderParam装饰器装饰变量作为占位。在使用时通过指向@Builder装饰的构建函数。

自定义弹窗使用相关问题-鸿蒙开发者社区

 设置弹窗的圆角,自定义弹窗.borderRadius(15)属性失效问题

HarmonyOS
2024-05-23 23:07:40
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
椰子的笔记

使用的核心API

1. @BuilderParam装饰器使用解决在自定义组件中添加一个例如点击跳转操作。若直接在组件内嵌入事件方法,将会导致所有引入该自定义组件的地方均增加了该功能

@BuilderParam用来装饰指向@Builder方法的变量,开发者可在初始化自定义组件时对此属性进行赋值,为自定义组件增加特定的功能。该装饰器用于声明任意UI描述的一个元素,类似slot占位符。

2. CustomDialogController(value: CustomDialogControllerOptions)接口CustomDialogController类显示自定义弹窗。参数通过builder来自定义弹窗的构造器。

核心代码解释

在父组件中使用this指向@builder装饰的构建函数,如下:

richText:(): void=> this.buildCall("123XXXXXXX") 
@Builder buildCall(mobile: string) { 
  Text() { 
    Span('确认呼叫号码').fontColor($r("app.color.theme_text_color")).fontSize(14) 
    Span(mobile).fontColor($r("app.color.theme_color")).fontSize(14) 
    Span('?').fontColor($r("app.color.theme_text_color")).fontSize(14) 
  } 
  .margin({ left: 16, top: 16, right: 16 }) 
}

参数customStyle表示弹窗容器样式是否自定义。当直接设置弹窗圆角半径时,设置不生效,需要添加customStyle参数才可以设置圆角半径。

dialogController: CustomDialogController = new CustomDialogController({ 
  builder: CustomDialogExample({ 
    cancel: this.onCancel, 
    confirm: this.onAccept, 
    richText:(): void=> this.buildCall("123XXXXXXX") 
  }), 
  autoCancel:false,//是否允许点击避障层退出 
  customStyle: true//弹窗样式是否自定义   
})

实现效果


分享
微博
QQ
微信
回复
2024-05-24 22:47:42