HarmonyOS:实现状态栏背景颜色沉浸

一、效果图

状态栏背景颜色没有改

实现状态栏背景颜色沉浸

二、实现方式

2.1 手动设置状态栏的颜色:

实现步骤:

  1. 获取并缓存窗口对象
  2. 在打开目标页面时,使用setWindowSystemBarProperties接口设置状态栏属性

获取并缓存窗口对象

2.2 对顶部组件使用expandSafeArea属性扩展安全区域属性,实现状态栏沉浸

效果图

示例代码

c 复制代码
@Entry
@Component
struct TestFullBg {
  @State message: string = '实现状态栏背景颜色沉浸';

  build() {
    RelativeContainer() {
      Text(this.message)
        .id('TestFullBgHelloWorld')
        .fontSize(30)
        .fontWeight(FontWeight.Medium)
        .alignRules({
          center: { anchor: '__container__', align: VerticalAlign.Center },
          middle: { anchor: '__container__', align: HorizontalAlign.Center }
        })

    }
    .height('100%')
    .width('100%')
    .backgroundColor(Color.Pink)
    // 设置顶部绘制延伸到状态栏
    .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP])
  }
}

2.3 设置窗口的背景色来实现沉浸式效果

效果图

示例代码

c 复制代码
// EntryAbility.ets

onWindowStageCreate(windowStage: window.WindowStage): void {
  windowStage.loadContent('pages/Example', (err, data) => {
    if (err.code) {
      return;
    }
    // 设置全窗颜色和应用元素颜色一致
    windowStage.getMainWindowSync().setWindowBackgroundColor('#ff9f96f8');
  });
}

TestFullBg.ets文件代码

c 复制代码
@Entry
@Component
struct TestFullBg {
  @State message: string = '实现状态栏背景颜色沉浸';

  build() {
    RelativeContainer() {
      Text(this.message)
        .id('TestFullBgHelloWorld')
        .fontSize(30)
        .fontWeight(FontWeight.Medium)
        .alignRules({
          center: { anchor: '__container__', align: VerticalAlign.Center },
          middle: { anchor: '__container__', align: HorizontalAlign.Center }
        })

    }
    .height('100%')
    .width('100%')
    // .backgroundColor(Color.Pink)
    .backgroundColor('ff9f96f8')
    // 设置顶部绘制延伸到状态栏
    // .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP])
  }
}
相关推荐
OH_TPC4 小时前
HarmonyOS APP开发---“动效君“UI动效素材库App,需要用到这个库
ui·华为·harmonyos·鸿蒙
贾伟康8 小时前
HarmonyOS 3DGS 滤镜切换实战:效果创建、参数管理与资源释放
harmonyos·arkts·鸿蒙开发·技术实践·空间化体验
HarmonyOS_SDK8 小时前
【HarmonyOS API 26】分布式数字身份DID:系统级可信身份体系
harmonyos
贾伟康8 小时前
HarmonyOS GSNode 场景控制实战:位置、缩放、可见性与状态同步
harmonyos·arkts·鸿蒙开发·技术实践·空间化体验
redtank20009 小时前
纯血鸿蒙本地音乐播放器开发实战:我爱听歌架构解析
harmonyos
贾伟康9 小时前
HarmonyOS API 26 分块 3DGS 实战:相机驱动、瓦片回调与并发去重
性能优化·harmonyos·arkts·3dgs·spatial recon kit
万物智能信息科技10 小时前
指纹识别传感器驱动开发—【万物智能之开源鸿蒙OpenHarmony系统实战开发系列教程】
驱动开发·华为·开源·harmonyos·鸿蒙
贾伟康1 天前
【共创稿事节】HarmonyOS 7.0 AOT编译优化:从接入到生产验证
harmonyos·arkts·路由·navigation·navdestination
2601_949480061 天前
开源鸿蒙平台 CMP 三方库「shadcn」适配全流程
华为·开源·harmonyos
Liaiyang661 天前
空圈容错视角-HarmonyOS 7 架构体检:从被动容错到主动免疫的真伪验证与生态反推
操作系统·harmonyos·架构设计·ai-agent·端云协同·鸿蒙7·空圈容错