怎么判断customDialog是否正在显示?

怎么判断customDialog是否正在显示。

HarmonyOS
2024-10-11 12:01:16
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zxjiu

目前自定义弹窗没有提供判断展示状态的方法。

可以参考下面方案代替:

设置一个状态变量开启弹窗时设置为true,关闭弹窗时设置为false。

参考下面demo:

@CustomDialog  
struct CustomDialogExample {  
  cancel?: () => void  
  confirm?: () => void  
  controller: CustomDialogController  
  build() {  
    Column() {  
      Text('我是内容').fontSize(20).margin({ top: 10, bottom: 10 })  
      Flex({ justifyContent: FlexAlign.SpaceAround }) {  
        Button('cancel')  
          .onClick(() => {  
            this.controller.close()  
            if (this.cancel) {  
              this.cancel()  
            }  
          }).backgroundColor(0xffffff).fontColor(Color.Black)  
        Button('confirm')  
          .onClick(() => {  
            this.controller.close()  
            if (this.confirm) {  
              this.confirm()  
            }  
          }).backgroundColor(0xffffff).fontColor(Color.Red)  
      }.margin({ bottom: 10 })  
    }  
  }  
}  
  
@Entry  
@Component  
struct CustomDialogUser {  
  @State isShow : boolean = false;//添加一个变量来表示当前弹窗是否在显示  
  dialogController: CustomDialogController = new CustomDialogController({  
    builder: CustomDialogExample({  
      cancel: ()=> {  
        this.isShow = false;//开启弹窗时设置为false  
        this.onCancel()  
      },  
      confirm: ()=> {  
        this.isShow = false;//开启弹窗时设置为false  
        this.onAccept()  
      },  
    }),  
  })  
  
  onCancel() {  
    console.info('Callback when the first button is clicked')  
  }  
  
  onAccept() {  
    console.info('Callback when the second button is clicked')  
  }  
  
  build() {  
    Column() {  
      Button('click me')  
        .onClick(() => {  
          this.isShow = true;//开启弹窗时设置为true  
          this.dialogController.open()  
        })  
    }.width('100%').margin({ top: 5 })  
  }  
}
分享
微博
QQ
微信
回复
2024-10-11 16:17:21
相关问题
怎么判断某个customDialog是否弹出?
229浏览 • 1回复 待解决
如何控制CustomDialog显示层级
629浏览 • 1回复 待解决
JS UI 怎么判断键盘 是否拉起?
6441浏览 • 1回复 待解决
怎么判断一个APP是否为多HAP包结构?
729浏览 • 1回复 待解决
如何判断HAP是否安装
1961浏览 • 1回复 待解决
PostgreSQL insert 前判断是否存在?
4227浏览 • 2回复 待解决
如何判断是否为主线程?
1091浏览 • 1回复 待解决
如何判断Web组件是否全屏
2002浏览 • 1回复 待解决
后台弹窗权限怎么判断
4719浏览 • 1回复 待解决
HarmonyOS 怎么进行类型判断
456浏览 • 1回复 待解决