HarmonyOS 鸿蒙Next:如何在第二层自定义弹窗弹出时关闭第一层自定义弹窗

发布于 1周前 作者 wuwangju 来自 鸿蒙OS

HarmonyOS 鸿蒙Next:如何在第二层自定义弹窗弹出时关闭第一层自定义弹窗

Screenshot_2024-08-01T143006.png

这个是第一层弹出的自定义窗口

点击登录,弹出第二层的自定义窗口:

Screenshot_2024-08-01T143011.png

请问:如何在弹出第二层窗口时,关闭第一层窗口?

11 回复
不要在第一层弹窗组件中直接调用第二层,在第一层弹窗返回到主页面的处理方法中根据返回值选择调用的第二层弹窗即可。

有道理,我试试

我不是用路由打开第一层窗口,是用自定义对话框方式弹出的,使用router.back(index)无效. 该如何解决?

弹窗不是有定义confirm()回调吗?回调中带个参数指明弹窗中的操作,confirm 在调用组件中指定的处理方法中可再根据此参数调用对话框;

谢谢各位大神的解答!!!

问题解决了

可以先关闭本身这个自定义窗口的

controller: CustomDialogController//通过controller控制这个组件的打开或关闭

需要关闭自己这个窗口时,只需要调用:

this.controller.close()

就可以实现关闭自己

您好,可以参考一下三方库eftool中的WinDialogUtil的思路 可以实现

看了一头雾水,不知道还有没有什么好办法?

第一个与第二个弹窗本质上是一个实例,点击第一个的时候返回一个变量是否自调用关闭,则可以实现点击完第一个按钮自动关闭,同时触发第二个的弹出

在第二层自定义窗口中绑定第一层的自定义窗口,使用:

aboutToAppear(): void {
      this.RegisterLoginListController.close()
}<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>

不能关闭第一层的窗口,加try也没有报错,

在HarmonyOS 鸿蒙Next中,若要在第二层自定义弹窗弹出时关闭第一层自定义弹窗,可以通过编程逻辑实现。首先,确保你有两个自定义弹窗的控制器实例,分别控制第一层和第二层弹窗。当触发第二层弹窗显示时,可以在显示逻辑中调用第一层弹窗控制器的关闭方法。这样,当第二层弹窗弹出时,第一层弹窗就会自动关闭。如果问题依旧没法解决,请加我微信,我的微信是itying888。

回到顶部