HarmonyOS 鸿蒙Next 在半模态转场中,配置 mode: SheetMode.OVERLAY 显示正常,但是修改为 mode: SheetMode.EMBEDDED 后弹窗显示异常
HarmonyOS 鸿蒙Next 在半模态转场中,配置 mode: SheetMode.OVERLAY 显示正常,但是修改为 mode: SheetMode.EMBEDDED 后弹窗显示异常,关闭弹窗引发异常
在 NavDestination 中调用半模态弹窗。代码如下
NavDestination() {
//…
}
.bindSheet($$this.isShowEditTagSheet, this.EditTagActionSheet(), {
height: SheetSize.FIT_CONTENT,
dragBar: true,
showClose: false,
preferType: SheetType.BOTTOM,
mode: SheetMode.EMBEDDED
})
在 tablet 模拟机或者 phone 模拟机、真机上运行时, bindSheet 的 mode 属性设置为 SheetMode.EMBEDDED 时,弹窗时顶部存在没有沉浸遮住导航条。关闭弹窗后,页面输入框异常会自动获得焦点,并弹出键盘。 如果 mode 属性设置为 SheetMode.OVERLAY,关闭弹窗后页面输入框无异常。
针对您提到的HarmonyOS鸿蒙Next在半模态转场中,SheetMode配置异常的问题,这里提供可能的技术分析:
在HarmonyOS开发中,SheetMode.OVERLAY与SheetMode.EMBEDDED的显示逻辑和渲染机制不同。SheetMode.OVERLAY通常覆盖在当前页面之上,而SheetMode.EMBEDDED则是嵌入到页面布局中,这要求页面布局和弹窗内容需有更精细的协调。
当您从SheetMode.OVERLAY切换到SheetMode.EMBEDDED后,弹窗显示异常可能是由于页面布局未能正确适配嵌入式弹窗,或者弹窗内容超出了预留空间。此外,关闭弹窗时引发异常,可能是由于弹窗在销毁过程中访问了已释放的资源,或未正确处理弹窗状态变化。
建议检查以下几点:
- 确保页面布局为弹窗预留了足够的空间。
- 弹窗内容不应超出其容器范围。
- 弹窗关闭逻辑中,确保所有资源都已正确释放,避免访问无效内存。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。希望这些信息对您有所帮助。