#鸿蒙通关秘籍#如何实现HarmonyOS窗口的沉浸式体验?

HarmonyOS
2天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
SMM晨光熹微

使用HarmonyOS的窗口模块支持沉浸式体验,可以通过以下两种方式实现:

  1. 设置状态栏和导航栏不显示。
  2. 将窗口设置为全屏布局,并调整状态栏和导航栏的透明度和颜色,使其在视觉上与主窗口协调一致。

javascript import { UIAbility } from '@kit.AbilityKit'; import { window } from '@kit.ArkUI'; import { BusinessError } from '@kit.BasicServicesKit';

export default class EntryAbility extends UIAbility { onWindowStageCreate(windowStage: window.WindowStage) { windowStage.getMainWindow((err: BusinessError, data) => { if (err.code) { console.error('获取主窗口失败: ' + JSON.stringify(err)); return; } let windowClass = data;

  // 方法一:设置状态栏和导航栏不可见
  windowClass.setWindowSystemBarEnable([], (err: BusinessError) => {
    if (err.code) {
      console.error('设置系统栏可见性失败: ' + JSON.stringify(err));
      return;
    }
  });

  // 方法二:设置窗口为全屏布局,并设置系统栏属性
  windowClass.setWindowLayoutFullScreen(true, (err: BusinessError) => {
    if (err.code) {
      console.error('设置全屏布局失败: ' + JSON.stringify(err));
      return;
    }
  });

  let sysBarProps = {
    statusBarColor: '#ff00ff',
    navigationBarColor: '#00ff00',
    statusBarContentColor: '#ffffff',
    navigationBarContentColor: '#ffffff'
  };
  
  windowClass.setWindowSystemBarProperties(sysBarProps, (err: BusinessError) => {
    if (err.code) {
      console.error('设置系统栏属性失败: ' + JSON.stringify(err));
      return;
    }
  });
});

windowStage.loadContent("pages/page2", (err: BusinessError) => {
  if (err.code) {
    console.error('加载内容失败: ' + JSON.stringify(err));
    return;
  }
});

} }

分享
微博
QQ
微信
回复
2天前
相关问题
如何设置沉浸窗口,你会吗?
1927浏览 • 1回复 待解决
API9和API10实现沉浸窗口方式
411922浏览 • 1回复 待解决
沉浸图文排列布局如何实现
359浏览 • 1回复 待解决
如何实现沉浸状态栏?
524浏览 • 1回复 待解决
沉浸登录界面如何实现
285浏览 • 1回复 待解决
HarmonyOS 沉浸方案
247浏览 • 1回复 待解决