HarmonyOS 鸿蒙Next ArkUI 状态栏沉浸效果实现 | 获取状态栏高度
HarmonyOS 鸿蒙Next ArkUI 状态栏沉浸效果实现 | 获取状态栏高度 API版本:8
效果类似如下
// 设置应用窗口沉浸模式
window.getTopWindow((err, mainWindowClass) => {
if (err) {
console.error('Failed to get the subWindow. Cause: ' + JSON.stringify(err))
return
}
// 将UI内容顶入状态栏下方
mainWindowClass.setLayoutFullScreen(true, (e, data) => {
// 设置状态栏透明背景
let SystemBarProperties = {
statusBarColor: '#00000000'
}
//设置窗口内导航栏、状态栏的属性,使用callback异步回调。
mainWindowClass.setSystemBarProperties(SystemBarProperties, (err) => {
if (err) {
console.error('Failed to set the system bar properties. Cause: ' + JSON.stringify(err))
return
}
console.info('Succeeded in setting the system bar properties.')
mainWindowClass.getAvoidArea(window.AvoidAreaType.TYPE_SYSTEM, (err, data) => {
if (err) {
console.error('Failed to obtain the area. Cause:' + JSON.stringify(err));
return;
}
this.topmargin = data.topRect.height
// 保存高度信息
Context.set('systemBarHeight', this.topmargin)
console.info('Succeeded in obtaining the area. Data:' + JSON.stringify(data));
})
})
})
})
其中getVoidArea方法返回的结果如下:
{
"bottomRect": {
"height": 0,
"left": 0,
"top": 0,
"width": 0
},
"leftRect": {
"height": 0,
"left": 0,
"top": 0,
"width": 0
},
"rightRect": {
"height": 0,
"left": 0,
"top": 0,
"width": 0
},
"topRect": {
"height": 126,
"left": 0,
"top": 0,
"width": 0
}
}
再在布局中使用状态栏高度信息即可实现沉浸效果
更多关于HarmonyOS 鸿蒙Next ArkUI 状态栏沉浸效果实现 | 获取状态栏高度的实战教程也可以访问 https://www.itying.com/category-93-b0.html
api9 release什么时候出,等的花都谢了😄
更多关于HarmonyOS 鸿蒙Next ArkUI 状态栏沉浸效果实现 | 获取状态栏高度的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
API9 无法获取到状态栏高度!
等一下api9release,上真机验证,
好喜欢
学习
有API9的没?
API9的接口是类似的,你可以查一下API参考,在图形图像的window里面。HarmonyOS的api9还没有release,
挺好
State模型下是需要通过真要才可以获取到吗?在预览界面获取失败呢
你这个高度如何存的,我写在app.ets里 index.ets获取不到值
api9 EntryAbility里面就可以获取到,
学习新知识!掌握新技能
在HarmonyOS(鸿蒙)系统中,使用ArkUI(ArkUI是鸿蒙系统的声明式前端框架,支持使用JS/TS或eTS语言进行开发)实现状态栏沉浸效果并获取状态栏高度,可以通过以下方式实现:
实现状态栏沉浸效果
在ArkUI中,要实现状态栏沉浸效果,通常需要将状态栏设置为透明,并让页面内容延伸到状态栏下方。这可以通过设置系统UI的样式来实现。具体方法依赖于你所使用的ArkUI版本和组件库,但一般可以通过修改window
或Application
的相关属性来设置。例如,在eTS中,你可能会使用类似systemUI.setStatusBarVisible(false)
的方法来隐藏状态栏(注意,具体API可能有所不同,需查阅最新的鸿蒙开发文档)。
获取状态栏高度
获取状态栏高度通常需要使用系统提供的API或属性。在鸿蒙系统中,你可以通过访问系统服务或特定的组件属性来获取状态栏的高度。不过,由于ArkUI的抽象层较高,直接获取状态栏高度的API可能并不直观。一个常见的做法是使用系统提供的UI组件或布局特性来间接获取,或者通过监听系统UI变化事件来获取相关信息。
如果上述方法无法直接解决你的问题,可能是因为鸿蒙系统的API在不断更新和变化。请参考最新的鸿蒙开发文档,或访问鸿蒙开发者社区寻求更具体的帮助。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html,