HarmonyOS CustomDialog进入后台 , 然后再恢复 , 弹窗就自动关闭了

HarmonyOS CustomDialog进入后台 , 然后再恢复 , 弹窗就自动关闭了。

HarmonyOS
2024-10-16 09:37:31
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
superinsect

想要实现Dialog跳转页面之后 再返回Dialog不消失 ,可以使用Stack组件模拟实现Dialog的效果。demo如下:

@Component  
export struct PrivacyDialog {  
  @Consume('pageInfo') pageStack : NavPathStack;  
  @State isAgree: string = "Not Agree";  
  build() {  
    NavDestination(){  
      Stack({ alignContent: Alignment.Center }){  
        // 蒙层  
        Column() {  
        }  
        .width("100%")  
        .height("100%")  
        .backgroundColor('rgba(0,0,0,0.5)')  
        // 隐私弹窗  
        Column() {  
          Text("注册应用账号").fontSize(30).height('20%')  
          Text("请您仔细阅读一下协议并同意,我们将全力保护您的个人信息安全,您可以使用账号登录APP。").height('40%')  
          Divider()  
          Row(){  
            // 点击隐私条款,跳转到隐私条款页面,并接受隐私条款的返回值,用来刷新页面的同意状态。  
            Text("《应用隐私政策》").onClick(ent => {  
              let pathInfo : NavPathInfo = new NavPathInfo('PrivacyItem', null  
                , (popInfo: PopInfo) => {  
                  this.isAgree = popInfo.result.toString();  
                })  
              this.pageStack.pushDestination(pathInfo, true)  
            })  
            Text(this.isAgree)  
          }.height('20%')  
          Divider()  
          // 点击同意不同意按钮,将状态返回登录页  
          Row(){  
            Button("不同意").onClick(ent => {  
              this.pageStack.pop("Not Agree", true)  
            }).width('30%')  
            Button("同意").onClick(ent => {  
              this.pageStack.pop("Agree", true)  
            }).width('30%')  
          }.height('20%')  
        }.backgroundColor(Color.White)  
        .height('50%')  
        .width('80%')  
      }  
    }.hideTitleBar(true)  
    // 设置Dialog类型  
    .mode(NavDestinationMode.DIALOG)  
  }  
}
分享
微博
QQ
微信
回复
2024-10-16 16:49:01
相关问题
HarmonyOS 如何先关闭键盘 关闭弹窗
434浏览 • 1回复 待解决
HarmonyOS中如何手动让应用进入后台
138浏览 • 0回复 待解决
HarmonyOS 自定义弹窗CustomDialog问题
616浏览 • 1回复 待解决
弹窗组件无法进入onPageShow方法
2143浏览 • 1回复 待解决
HarmonyOS 自定义弹窗 (CustomDialog)问题
401浏览 • 1回复 待解决