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 沉浸式方案
159浏览 • 1回复 待解决
HarmonyOS 底部导航条沉浸式方案
201浏览 • 1回复 待解决
组件在沉浸式的情况下在页面最底端不响应滚动手势
1990浏览 • 1回复 待解决
HarmonyOS web在沉浸式和非沉浸式下内容展示不全问题
98浏览 • 1回复 待解决
HarmonyOS page设置沉浸式后影响其他页面
429浏览 • 1回复 待解决
如何在不同page中进行沉浸式和非沉浸式切换?
197浏览 • 1回复 待解决
如何设置沉浸式状态栏
2436浏览 • 1回复 待解决
跨moduel调用或者页面跳转有什么好的方案
222浏览 • 1回复 待解决
屏幕旋转计算,有什么好的方案?
813浏览 • 1回复 待解决
HarmonyOS 如果想要 “图标,文本,小表情” 这些进行混合的话,目前HarmonyOS这边有什么好的方案吗?
163浏览 • 1回复 待解决
HarmonyOS 如何设置单个page沉浸式状态栏
276浏览 • 0回复 待解决
HarmonyOS Tabs组件做沉浸式失败
262浏览 • 1回复 待解决
如何设置沉浸式窗口,你会吗?
1830浏览 • 1回复 待解决
鸿蒙里如果要实现自动全埋点,有什么好的方案?
3浏览 • 0回复 待解决
修改页面状态栏颜色,以及沉浸式状态属性设置
2635浏览 • 1回复 待解决
沉浸式图文排列布局如何实现
294浏览 • 1回复 待解决
HarmonyOS 栏目编辑有什么好的方案或者库吗?
226浏览 • 1回复 待解决
HarmonyOS 中全局弹窗有什么好的落地方案?
22浏览 • 0回复 待解决
HarmonyOS 实现沉浸式全屏模式,全局设置所有页面方式怎么做?
346浏览 • 1回复 待解决
Tabs, TabContent架构下实现沉浸式,设置设置 .expandSafeArea不生效
310浏览 • 1回复 待解决
页面有Dialog弹框时,如何实现蒙尘沉浸式
1811浏览 • 1回复 待解决
后台列表查询与展示,大数据量并且分页的情况下,有什么好的解决方案?
3177浏览 • 1回复 待解决
HarmonyOS 沉浸式状态栏最佳实践
208浏览 • 1回复 待解决
3518开发板_安装串口驱动,这两种情况有何异同
7367浏览 • 2回复 已解决
沉浸式登录界面如何实现
226浏览 • 1回复 待解决
针对如何实现沉浸式效果,系统侧提供了两种方案(窗口全局布局【布局全屏】和组件安全区方案【绘制全屏】),对应官网文档可参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-develop-apply-immersive-effects-0000001820435461-V5?catalogVersion=V5
两种方案都有自己的特点,一个是绘制全屏,一个是布局全屏。
从灵活度上,布局全屏是最灵活的,开发者完全控制状态栏和导航栏。而针对需要单独布局UI元素到状态栏和导航条区域的场景建议使用窗口全屏布局方案处理。应用可针对自身场景来选择使用哪种方案。