HarmonyOS 鸿蒙Next 修改页面状态栏颜色及沉浸式状态属性设置

发布于 1周前 作者 sinazl 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 修改页面状态栏颜色及沉浸式状态属性设置

onWindowStageCreate(windowStage: window.WindowStage): void { 
  windowStage.getMainWindow((err, data) => { 
    if (err.code) { 
      return 
    } 
    GlobalThis.getInstance().setObject("mainWindow",data); 
    // 设置全屏展示,沉浸式 
    data.setWindowLayoutFullScreen(true); 
    let sysBarProps = { 
      statusBarColor: '#00000000', 
      navigationBarColor: '#00000000', 
      // 以下两个属性从API Version 8开始支持A03d00/JSAPP 
      // statusBarContentColor: '#2B3141', 
      // navigationBarContentColor: '#2B3141' 
    } as SystemBarPropertiesType; 
    data.setWindowSystemBarProperties(sysBarProps) 
    // 获取状态栏高度 
    let avoidArea = data.getWindowAvoidArea(window.AvoidAreaType.TYPE_SYSTEM); 
    LogUtil.info("statusBarHeight===", avoidArea.topRect.height.toString()) 
    AppStorage.setOrCreate<number>("statusBarHeight", px2vp(avoidArea.topRect.height)) 
    // GlobalThis.getInstance().setObject("statusBarHeight", px2vp(avoidArea.topRect.height)) 
  }) 
}

4 回复
GlobalThis 这是个什么东西。哪里的啊?

data.setWindowLayoutFullScreen(true); 应该是只要这一句吧,我试了可以,不过启动的时候状态栏会闪一下,真的发现harmony的api是真难用,吹过头了。

我只加了这一句,在普通页面可以,但是到了带Web组件的页面就不行了,状态栏会灰色背景遮挡

作为IT专家,对于HarmonyOS鸿蒙Next修改页面状态栏颜色及沉浸式状态属性设置的问题,以下是一些专业解答:

HarmonyOS鸿蒙Next中,修改页面状态栏颜色及设置沉浸式状态主要通过调整窗口布局和系统栏属性来实现。

  1. 获取应用主窗口: 通过getMainWindow接口获取当前应用的主窗口对象。

  2. 设置全屏布局: 调用setWindowLayoutFullScreen接口,将应用主窗口设置为全屏布局。

  3. 调整系统栏属性: 使用setWindowSystemBarProperties接口,设置状态栏和导航栏的背景色、文字颜色等属性,使之与主窗口显示协调一致。例如:

    let sysBarProps = {
        statusBarColor: '#ff00ff',
        navigationBarColor: '#00ff00',
        statusBarContentColor: '#ffffff',
        navigationBarContentColor: '#ffffff'
    };
    windowClass.setWindowSystemBarProperties(sysBarProps).catch((error) => {
        console.error(`setWindowSystemBarProperties-异常 ~ code: ${error.code} - message:${error.message}`);
    });
    
  4. 设置系统栏显示: 调用setWindowSystemBarEnable接口,可选择性地显示或隐藏状态栏和导航栏。

在设置沉浸式效果时,应确保可交互UI元素和应用关键信息不被遮挡,同时做好布局避让处理。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部