HarmonyOS鸿蒙Next中封装全局dialog不受页面控制,方法中调用,屏蔽物理返回键及触摸屏幕消失,当前API不太友好,只能用Navigation,还有其他的API可以使用吗?

HarmonyOS鸿蒙Next中封装全局dialog不受页面控制,方法中调用,屏蔽物理返回键及触摸屏幕消失,当前API不太友好,只能用Navigation,还有其他的API可以使用吗? 封装一个全局的dialog,该dialog 不受页面控制,也可以在方法中调用,屏蔽物理返回键及触摸屏幕消失可自行设置,当前鸿蒙给的api 不太友好呀,貌似只能用Navigatio ,还有其他的api 可以使用嘛

2 回复

在HarmonyOS鸿蒙Next中,封装全局dialog不受页面控制时,除了使用Navigation,还可以考虑使用Window API。通过Window API可以创建和管理全局窗口,实现对dialog的全局控制。具体可以使用WindowManager来创建和显示全局窗口,并通过Window的属性设置来屏蔽物理返回键及触摸屏幕消失的行为。

例如,可以使用WindowManager.addWindow方法来添加一个全局窗口,并通过设置WindowFLAG_NOT_TOUCH_MODALFLAG_NOT_FOCUSABLE等标志来实现对触摸事件的屏蔽。此外,可以通过重写Window的事件处理方法来拦截物理返回键的操作。

这种方式可以绕过Navigation的限制,直接操作全局窗口,提供更灵活的控制能力。不过需要注意的是,使用Window API需要谨慎处理窗口的生命周期和资源管理,以避免内存泄漏等问题。

更多关于HarmonyOS鸿蒙Next中封装全局dialog不受页面控制,方法中调用,屏蔽物理返回键及触摸屏幕消失,当前API不太友好,只能用Navigation,还有其他的API可以使用吗?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,如果需要封装全局dialog并屏蔽物理返回键及触摸屏幕消失,除了使用Navigation,还可以考虑使用Window API。通过Window API可以创建一个全屏的透明窗口,将dialog嵌入其中,从而实现对物理返回键和触摸事件的控制。这种方法虽然较为复杂,但可以提供更高的灵活性和控制力。

回到顶部