HarmonyOS 鸿蒙Next关于窗口沉浸式的设置方式
HarmonyOS 鸿蒙Next关于窗口沉浸式的设置方式
app中有一个场景为:
一个子页面需要根据传入的参数进行判断,动态设置该页面是否为沉浸式,
查阅文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V2/application-window-stage-0000001427584712-V2#ZH-CN_TOPIC_0000001523968638__%E4%BD%93%E9%AA%8C%E7%AA%97%E5%8F%A3%E6%B2%89%E6%B5%B8%E5%BC%8F%E8%83%BD%E5%8A%9B
是只能设置整个应用的沉浸式状态吗?
如何能实现上面描述的功能
一个子页面需要根据传入的参数进行判断,动态设置该页面是否为沉浸式,
查阅文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V2/application-window-stage-0000001427584712-V2#ZH-CN_TOPIC_0000001523968638__%E4%BD%93%E9%AA%8C%E7%AA%97%E5%8F%A3%E6%B2%89%E6%B5%B8%E5%BC%8F%E8%83%BD%E5%8A%9B
是只能设置整个应用的沉浸式状态吗?
如何能实现上面描述的功能
更多关于HarmonyOS 鸿蒙Next关于窗口沉浸式的设置方式的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
2 回复
可以参考以下开发指南,使用expandSafeArea属性设置,使页面内组件无视顶部状态栏和底部导航栏的占用:
.expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP, SafeAreaEdge.BOTTOM])
下列demo是expandSafeArea属性的动态变化demo: // Index.ets
@Entry
@Component
struct Index{
@State message: string = 'Hello World'
private controller: TabsController = new TabsController()
@State selfFadingFade: boolean = true;
@State currentIndex: number = 0
@State isTrue: boolean = false;
build() {
Column() {
Image($r("app.media.ic_app_background"))
.height('100%').width('100%')
.expandSafeArea(this.isTrue? []:[SafeAreaType.SYSTEM], this.isTrue? []:[SafeAreaEdge.TOP, SafeAreaEdge.BOTTOM]) // 图片组件的绘制区域扩展至状态栏和导航条。
// .expandSafeArea(null)
Button("切换").onClick(()=>{
this.isTrue = !this.isTrue
})
}
}
}
更多关于HarmonyOS 鸿蒙Next关于窗口沉浸式的设置方式的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
HarmonyOS 鸿蒙Next关于窗口沉浸式的设置方式,主要包括以下几种:
一、设置全屏布局
- 调用
setWindowLayoutFullScreen
接口,将应用主窗口设置为全屏布局。 - 使用
setWindowSystemBarProperties
接口,设置导航栏、状态栏的透明度、背景/文字颜色等属性,使之与主窗口显示协调一致。
二、避让状态栏与导航栏
- 通过
getWindowAvoidArea
接口获取状态栏和导航栏的高度。 - 将获取到的高度转换为vp单位,并保存到
AppStorage
中。 - 页面使用
StorageProp
获取导航栏与状态栏高度,并进行避让。
三、设置安全区域
- 使用
expandSafeArea
属性扩展背景组件的安全区域,使UI元素能够延伸到状态栏和导航栏区域,形成沉浸式效果。 - 需要注意的是,设置
expandSafeArea
属性的组件需与安全区域边界重合,且不能设置固定宽高尺寸。
以上方法可以帮助开发者在HarmonyOS 鸿蒙Next上实现窗口的沉浸式效果。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。