HarmonyOS 目前沉浸式方案有两种,如果希望在特定页面情况下设置沉浸式有什么好的方案?
目前沉浸式方案有两种,一种是针对组件级别的沉浸式expandSafeArea,一种是全局的setWindowLayoutFullScreen,如果希望在特定页面情况下设置沉浸式有什么好的方案?expandSafeArea的问题在于需要给特定组件设置头部沉浸式,但是在实际开发过程中不是特定的组件位于顶部或者头部,总是动态的,而且expandSafeArea使用起来并不自由。setWindowLayoutFullScreen则正相反,使用起来自由又简单,但是部分页面适配沉浸式有很大成本,造成额外的适配工作。目前折中的做法是在在onPageShow和onPageHide期间做全局沉浸式和退出,但是置于后台或者多页面返回有概率失效。
onPageShow() {
WindowProxy.getInstance().setImmersiveWindows((error, windowHeight) => {
if (error) {
return
}
this.paddingTop = windowHeight
this.paddingBottom = WindowProxy.getInstance().getNavigationIndicatorHeight()
})
}
onPageHide() {
WindowProxy.getInstance().setNormalWindows()
}
请问针对此场景有没有更好的方案?或者更加建议的解法?
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
HarmonyOS 沉浸式方案
254浏览 • 1回复 待解决
HarmonyOS 底部导航条沉浸式方案
303浏览 • 1回复 待解决
组件在沉浸式的情况下在页面最底端不响应滚动手势
2081浏览 • 1回复 待解决
HarmonyOS page设置沉浸式后影响其他页面
521浏览 • 1回复 待解决
HarmonyOS web在沉浸式和非沉浸式下内容展示不全问题
226浏览 • 1回复 待解决
如何设置沉浸式状态栏
2597浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何使用组件安全区方案实现沉浸式效果?
95浏览 • 1回复 待解决
跨moduel调用或者页面跳转有什么好的方案
285浏览 • 1回复 待解决
如何在不同page中进行沉浸式和非沉浸式切换?
292浏览 • 1回复 待解决
屏幕旋转计算,有什么好的方案?
940浏览 • 1回复 待解决
HarmonyOS 如果想要 “图标,文本,小表情” 这些进行混合的话,目前HarmonyOS这边有什么好的方案吗?
245浏览 • 1回复 待解决
如何设置沉浸式窗口,你会吗?
1942浏览 • 1回复 待解决
HarmonyOS 关于沉浸式效果开发
27浏览 • 1回复 待解决
HarmonyOS 沉浸式状态栏
117浏览 • 1回复 待解决
鸿蒙里如果要实现自动全埋点,有什么好的方案?
122浏览 • 0回复 待解决
修改页面状态栏颜色,以及沉浸式状态属性设置
2863浏览 • 1回复 待解决
#鸿蒙通关秘籍#使用窗口全屏布局方案实现鸿蒙应用沉浸式效果的关键步骤是什么?
80浏览 • 1回复 待解决
HarmonyOS 如何设置单个page沉浸式状态栏
393浏览 • 0回复 待解决
HarmonyOS Tabs组件做沉浸式失败
400浏览 • 1回复 待解决
HarmonyOS 实现沉浸式全屏模式,全局设置所有页面方式怎么做?
441浏览 • 1回复 待解决
HarmonyOS 中全局弹窗有什么好的落地方案?
183浏览 • 0回复 待解决
HarmonyOS 栏目编辑有什么好的方案或者库吗?
298浏览 • 1回复 待解决
后台列表查询与展示,大数据量并且分页的情况下,有什么好的解决方案?
3261浏览 • 1回复 待解决
HarmonyOS 沉浸式设置底部状态栏高度变化问题
41浏览 • 1回复 待解决
HarmonyOS 沉浸式状态栏最佳实践
308浏览 • 1回复 待解决
针对如何实现沉浸式效果,系统侧提供了两种方案(窗口全局布局【布局全屏】和组件安全区方案【绘制全屏】),对应官网文档可参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-develop-apply-immersive-effects-0000001820435461-V5?catalogVersion=V5
两种方案都有自己的特点,一个是绘制全屏,一个是布局全屏。
从灵活度上,布局全屏是最灵活的,开发者完全控制状态栏和导航栏。而针对需要单独布局UI元素到状态栏和导航条区域的场景建议使用窗口全屏布局方案处理。应用可针对自身场景来选择使用哪种方案。