ArkUI实现时,如何将界面包含上状态栏 ?

示例代码(案例:常用组件与布局)的UI需要包含上状态栏区域,否则出现分层,很难看,这如何设置


UI
ArkUI
2023-10-10 15:09:54
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Euphemian

onWindowStageCreate(windowStage: window.WindowStage) {
        // Main window is created, set main page for this ability
        hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate');

        let windowClass: window.Window = null;
        try {
            window.getLastWindow(this.context, (err, data) => {
                if (err.code) {
                    console.error('Failed to obtain the top window. Cause: ' + JSON.stringify(err));
                    return;
                }
                windowClass = data;
                console.info('Succeeded in obtaining the top window. Data: ' + JSON.stringify(data));
                // 获取状态栏尺寸信息
                let type = window.AvoidAreaType.TYPE_SYSTEM;
                try {
                    let avoidArea = windowClass.getWindowAvoidArea(type);
                    globalThis.avoidArea = avoidArea

                    console.warn("avoidArea: " + JSON.stringify(globalThis.avoidArea))
                } catch (exception) {
                    console.error('Failed to obtain the area. Cause:' + JSON.stringify(exception));
                }
                // 设置窗口沉浸
                let isLayoutFullScreen= true;
                try {
                    windowClass.setWindowLayoutFullScreen(isLayoutFullScreen, (err) => {
                        if (err.code) {
                            console.error('Failed to set the window layout to full-screen mode. Cause:' + JSON.stringify(err));
                            return;
                        }
                        console.info('Succeeded in setting the window layout to full-screen mode.');
                    });
                    // 加载起始页
                    windowStage.loadContent('pages/Start', (err, data) => {
                        if (err.code) {
                            hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? '');
                            return;
                        }
                        hilog.info(0x0000, 'testTag', 'Succeeded in loading the content. Data: %{public}s', JSON.stringify(data) ?? '');
                    });
                } catch (exception) {
                    console.error('Failed to set the window layout to full-screen mode. Cause:' + JSON.stringify(exception));
                }
            });
        } catch (exception) {
            console.error('Failed to obtain the top window. Cause: ' + JSON.stringify(exception));
        }
    }

EntryAbility.ts中这样写,在UI布局中把状态栏高度空出来就行


已于2023-10-10 17:52:20修改
分享
微博
QQ
微信
回复
2023-10-10 17:51:38
相关问题
如何实现沉浸式状态栏
438浏览 • 1回复 待解决
HarmonyOS 关于ArkUI状态栏的问题
224浏览 • 1回复 待解决
沉侵式状态栏获取状态栏高度为0
282浏览 • 1回复 待解决
如何设置沉浸式状态栏
2443浏览 • 1回复 待解决
鸿蒙如何获取导航状态栏高度
11249浏览 • 1回复 待解决
如何获取状态栏和导航高度
2829浏览 • 1回复 待解决
如何获取状态栏与导航高度?
13浏览 • 0回复 待解决
获取状态栏与导航高度
508浏览 • 1回复 待解决
HarmonyOS 如何获取状态栏高度
437浏览 • 1回复 待解决
HarmonyOS 如何获取系统状态栏高度?
655浏览 • 1回复 待解决
Dialog如何覆盖状态栏全屏显示
10236浏览 • 1回复 待解决
ets开发如何设置隐藏状态栏
3280浏览 • 1回复 待解决
如何设置状态栏和导航的颜色
2783浏览 • 1回复 待解决
求大佬告知如何获取状态栏高度?
2185浏览 • 1回复 待解决