鸿蒙 ArkTs 状态栏透明,即沉浸式UI

概要

鸿蒙 ArkTs 状态栏透明,即沉浸式UI

示例

@Entry
@Component
struct HomePage {
  build() {
    RelativeContainer(){
    }
    .height('100%')
    .width('100%')
    .backgroundImage($r('app.media.homebg'))
    .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP, SafeAreaEdge.BOTTOM])//控制组件扩展其安全区域。实现沉浸式
    .backgroundImageSize({
      width: '100%',
      height: '100%'
    })

主要的就是这个方法

.expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP, SafeAreaEdge.BOTTOM])

方法解释

expandSafeArea(types?: Array, edges?: Array)

参数

types : 配置扩展安全区域的类型。未添加Metadata配置项时,页面不避让挖孔, CUTOUT类型不生效。
默认值:[SafeAreaType.SYSTEM, SafeAreaType.CUTOUT, SafeAreaType.KEYBOARD]
edges : 配置扩展安全区域的方向。
默认值:[SafeAreaEdge.TOP, SafeAreaEdge.BOTTOM, SafeAreaEdge.START, SafeAreaEdge.END]

扩展至所有非安全区域。

原开发文档链接

鸿蒙文档链接

### 关于 ARKTS鸿蒙开发中的状态栏使用 在鸿蒙操作系统 (HarmonyOS) 的应用程序开发过程中,利用 ARKTS 实现与状态栏相关的功能是一个常见的需求。为了使应用能够更好地适配不同设备并提供良好的用户体验,开发者可以采用多种方法来管理状态栏。 #### 调整布局以适应状态栏 为了让界面元素延伸至状态栏下方从而达到沉浸式的视觉效果,可以通过设置页面属性 `statusBarState` 来控制状态栏的行为[^3]: ```typescript Page({ onInit() { this.statusBarState = "translucent"; // 设置状态栏透明度为半透明白色文字颜色 } }) ``` 此代码片段展示了如何配置页面初始化函数内的参数,使得整个屏幕看起来更加统一和谐,同时也提高了用户的沉浸感体验。 #### 获取状态栏高度以便合理安排UI组件位置 当涉及到具体的设计细节时,比如按钮或其他控件的位置摆放,获取准确的状态栏尺寸就显得尤为重要了。这有助于确保即使是在不同的硬件上也能保持一致性的外观表现: ```typescript import window from '@ohos.window'; function getStatusBarHeight(): number { let rect = new window.Rect(); window.getDefault().getScreenRect(rect); return rect.top; // 返回状态栏的高度值 } ``` 上述 TypeScript 函数定义了一个简单的工具类用于返回当前屏幕上显示出来的实际状态栏大小数值,这对于动态调整视图间距或者定位其他图形化对象非常有用。 #### 处理深色模式下的状态栏样式 考虑到现代移动平台对于暗黑主题的支持日益普及,在设计之初就应该考虑好相应的兼容策略。如果希望自定义状态栏的文字颜色以及背景色调,则可以根据系统的夜间开关来进行相应的变化操作: ```typescript if (isDarkModeEnabled()) { Page({ onInit() { this.statusBarColor = "#FFFFFF"; // 白底黑字适用于黑暗环境 this.statusBarTextAppearance = "dark"; } }); } else { Page({ onInit() { this.statusBarColor = "#000000"; // 黑底白字适合明亮条件 this.statusBarTextAppearance = "light"; } }); } // 假设有一个辅助判断是否开启夜间的逻辑 function isDarkModeEnabled(): boolean { // 这里应该调用系统API或者其他方式检测当前的主题设定 ... } ``` 这段示例说明了怎样依据所处的情景改变状态栏的呈现形式,进而增强整体美观性和易读性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_43325149

如果我的分享对你造成帮助

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值