HarmonyOS customDialog调用router.push启动新页面,会把customDialog关闭

customDialog调用router.push启动新页面,会把customDialog关闭,怎么实现在不关闭弹窗的前提下启动新页面。在开发HarmonyOS应用的过程中,遇到了这样一个问题,有两个页面A和B,首先在页面A中有一个按钮,点击这个按钮会在页面A中弹出一个自定义的Dialog,在自定义的Dialog中也有一个按钮,点击这个按钮跳转到页面B,在页面B中按返回键返回到页面A中,此时会发现页面A中之前弹出的自定义的Dialog消失不见了,实际上并没有手动去关闭它,希望的效果是Dialog不会消失,应该该如何解决?

HarmonyOS
2025-01-09 16:37:01
574浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
Heiang

参考示例如下:

import { router } from '@kit.ArkUI'

@Entry
@Component
struct Page {
  @State showDialog: boolean = false
  build() {
    Column() {
      Text('弹出弹窗')
        .padding(50)
        .onClick(() => {
          this.showDialog = true
        })
    }
    .width("100%")
    .height("100%")
    .overlay(this.myDialog())
  }

  @Builder
  myDialog() {
    Flex({ justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) {
      // 隐私弹窗
      Column() {
        Text("注册应用账号").fontSize(30).height('20%')
        Text("请您仔细阅读一下协议并同意,我们将全力保护您的个人信息安全,您可以使用账号登录APP。").height('40%')
        Divider()
        Row() {
          Text("《应用隐私政策》(点击跳转)").onClick(ent => {
            router.pushUrl({ url: "pages/Index" })
          })
        }
        .height('20%')

        Divider()
        Row() {
          Button("不同意").onClick(ent => {
          }).width('30%').margin(5)
          Button("同意").onClick(ent => {
          }).width('30%').margin(5)
        }.height('20%')
      }
      .borderRadius(20)
      .onClick(() => {
      })
      .width(300)
      .height(400)
      .backgroundColor(Color.White)
    }
    .visibility(this.showDialog ? Visibility.Visible : Visibility.None)
    .onClick(() => {
      this.showDialog = false
    })
    .width('100%')
    .height('100%')
    .backgroundColor('rgba(0,0,0,0.5)')
  }
}
  • 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.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
分享
微博
QQ
微信
回复
2025-01-09 18:59:17


相关问题
HarmonyOS Navigation先pop再push新页面失败
575浏览 • 1回复 待解决
dialog跳转新页面返回后dialog关闭
1016浏览 • 1回复 待解决
Navigator和router.push有啥区别?
5550浏览 • 1回复 待解决
HarmonyOS @CustomDialog 调用 pushUrl
790浏览 • 1回复 待解决
HarmonyOS 如何刷新页面内容
606浏览 • 1回复 待解决
如何更新页面列表数据
7946浏览 • 1回复 待解决
HarmonyOS 数据改变未刷新页面
1302浏览 • 0回复 待解决
HarmonyOS CustomDialog跳转其他页面问题
764浏览 • 1回复 待解决