dialog跳转新页面返回后dialog关闭

在页面1打开一个自定义Dialog 。在dialog里面设置按钮点击跳转到页面2 使用的pushUrl 的方法。 也试过pushNamedRoute 方法。返回页面1时,dialog 已经被关闭了。 希望保留页面1 的dialog 开启的状态。 或者有什么代替方案?

HarmonyOS
2024-10-08 12:53:05
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
zxjiu

方案1:通过Stack容器结合其它组件,使用UI组件模拟Dialog的效果,简单示例:

Stack() {  
  // 原页面内容  
  Column(){...}  
  // 模拟遮罩层  
  Text('').width('100%').height('100%').opacity(0.16) // 透明度可以自己调节一下  
    .backgroundColor(0x000000).visibility(this.visible)  
  // 此处是原Dialog中的内容,使用UI组件模拟Dialog  
  Column(){...}  
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.

方案2:在页面的onPageShow()这个生命周期方法中调用open()方法打开,简单示例:

@State flag: boolean = false  
dialogController: CustomDialogController | null = new CustomDialogController({  
  builder: CustomDia({  
    cancel: this.onCancel,  
    confirm: this.onConfirm,  
    jumpPage: this.jumpPage  
  }),  
  alignment: DialogAlignment.Center  
})  
  
onPageShow(): void {  
  if (this.dialogController != null && this.flag) {  
    this.dialogController.open()  
  }  
}  
  
onPageHide(): void {  
  if (this.dialogController != null) {  
    this.dialogController.close()  
  }  
}  
  
build() {  
  Column() {  
    Button('第一个页面').onClick(() => {  
      if (this.dialogController != null) {  
        this.flag = true  
        this.dialogController.open()  
      }  
    })  
  }  
  .width('100%')  
  .height('100%')  
}  
  
jumpPage() {  
  router.pushUrl({  
    url: 'pages/Index'  
  })  
}  
  
onConfirm() {  
  console.info('------>onConfirm is clicked')  
}  
  
onCancel() {  
  console.info('------>onCancel is clicked')  
}  
  
aboutToDisappear(): void {  
  this.dialogController = null  
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
分享
微博
QQ
微信
回复
2024-10-08 16:23:40


相关问题
HarmonyOS dialog如何禁止侧滑返回关闭
697浏览 • 1回复 待解决
如何更新页面列表数据
8019浏览 • 1回复 待解决
HarmonyOS 如何刷新页面内容
635浏览 • 1回复 待解决
HarmonyOS dialog弹窗跳转问题
711浏览 • 1回复 待解决
HarmonyOS 数据改变未刷新页面
1325浏览 • 0回复 待解决