HarmonyOS CustomDialogController与Navigation冲突?

应用首次启动时,在闪屏页,使用CustomDialogController展示了一个隐私政策弹窗,可以通过点击弹窗中的《用户协议》/《隐私政策》跳转到包含具体政策协议文字的Web页。跳转通过Navigation实现,当跳转到下级页面时,自定义弹窗依然置于页面之上,而非跟随闪屏页一同显隐,请问如何是自定义弹窗的显隐与当前页面保持一致?

阅读 519
1 个回答

想在Component层弹出对话框,可以采用stack堆叠的方式控制隐私弹框的显隐。

具体请参考以下代码:

@State privacyShow:boolean = true
build() {
  Navigation(this.appPathStack) {
    Column() {
      Stack(){
        Text('Splash Page')
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
        if(this.privacyShow){
          Column(){

          }.width('100%').height('100%').backgroundColor(Color.Gray).opacity(0.1)
          PrivacyDialog({
            onPrivacyClick: async () => {
              this.appPathStack.pushPath({
                name: 'privacy',
              });
            },
            onAgreementClick: async () => {
              this.appPathStack.pushPath({
                name: 'privacy',
              });
            },
            onAgree: () => {
              this.privacyShow = false
            },
            onRefuse: () => {
              this.exitApp();
            }
          })
        }else {

        }
      }

    }
    .width('100%')
  }
  .hideTitleBar(true)
  .navDestination(this.appRouter)
  .mode(NavigationMode.Stack)
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进