HarmonyOS 鸿蒙Next CustomDialog有更好的实现方式么

HarmonyOS 鸿蒙Next CustomDialog有更好的实现方式么

CustomDialogController有没有更好的实现方案,现在这套方案是真难用,要提前声明,连传递的参数也要提前声明? 

3 回复

目前CustomDialog的规格如此,也可以使用promptAction.openCustomDialog(),来打开自定义弹窗。 https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-promptaction-0000001821000749#ZH-CN_TOPIC_0000001857916061__promptactionopencustomdialog11 demo如下:

import promptAction from '@ohos.promptAction'
let customDialogId: number = 0

@Builder
function customDialogBuilder(dialogTxt:string,index:string) {
  TestDialog({ dialogTxt: dialogTxt,content:index })

}

@Component
struct   TestDialog {
  @State dialogTxt: string = ''
  @State content: string = ''
  build() {

    Column() {
      Text(this.dialogTxt+this.dialogTxt).fontSize(20)
      Row() {
        Button("确认").onClick(() => {
          promptAction.closeCustomDialog(customDialogId)
        })
        Blank().width(50)
        Button("取消").onClick(() => {
          promptAction.closeCustomDialog(customDialogId)
        })
      }.margin({ top: 80 })
    }.height(200).padding(5)

  }
}

@Entry
@Component
struct Index57 {
  @State message: string = '打开弹窗'

  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
          .onClick(() => {
            promptAction.openCustomDialog({
              builder: customDialogBuilder.bind(this, '标题','内容')
            }).then((dialogId: number) => {
              customDialogId = dialogId
            })
          })
      }
      .width('100%')
    }
    .height('100%')
  }
}

更多关于HarmonyOS 鸿蒙Next CustomDialog有更好的实现方式么的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


promptAction.showToast()、promptAction.showDialog()怎么样?

或者看看这篇帖子有没有符合你需求的:https://developer.huawei.com/consumer/cn/blog/topic/03169396227138036

在HarmonyOS(鸿蒙)系统中,针对Next CustomDialog的实现方式,可以通过以下途径进行更高效的实现:

  1. XML布局与代码分离:采用XML定义对话框布局,然后在Java(在鸿蒙中对应的是ArkUI的TS或ETS语言,但此处按要求不提及)代码中通过资源ID引用该布局。这种方式提高了代码的可读性和可维护性。

  2. 利用Dialog组件:直接利用鸿蒙系统提供的Dialog组件,并通过设置自定义的Content来展示Next CustomDialog的内容。这样可以确保对话框的行为与系统保持一致,同时减少自定义实现的复杂性。

  3. 事件处理机制:在对话框中,通过事件监听器(如点击事件)来处理用户交互,确保响应的及时性和准确性。鸿蒙系统提供了完善的事件处理机制,可以方便地集成到自定义对话框中。

  4. 动画效果:如果需要在对话框中增加动画效果,可以利用鸿蒙系统的动画API,为对话框的显示和隐藏添加过渡动画,提升用户体验。

  5. 资源管理与释放:确保在对话框关闭时,正确释放占用的资源,如内存、文件句柄等,避免资源泄露。

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

回到顶部