HarmonyOS 如何仅在某些页面设置全屏,其他page恢复正常?

HarmonyOS
2024-12-24 16:15:01
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
FengTianYa

可以使用.expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP, SafeAreaEdge.BOTTOM])来设置安全区域,从而来控制页面是否全屏显示。

可以参考以下文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-universal-attributes-expand-safe-area-V5#expandsafearea

如果使用.expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP, SafeAreaEdge.BOTTOM]),就无需在UIAbility中设置沉浸式模式。

如果按照描述使用的沉浸式模式,可以参考以下代码:

//获取导航条高度和顶部状态高度
let type = window.AvoidAreaType.TYPE_NAVIGATION_INDICATOR; // 以导航条避让为例
let type2 = window.AvoidAreaType.TYPE_SYSTEM;
let avoidArea = windowClass.getWindowAvoidArea(type);
let avoidArea2 = windowClass.getWindowAvoidArea(type2);
let bottomRectHeight = avoidArea.bottomRect.height; // 获取到导航条区域的高度
let topRectHeight = avoidArea2.topRect.height //获取顶部状态栏高度

//在页面使用时
@Entry
@Component
struct Index {
  bottomRectHeight: string = AppStorage.get<number>('bottomRectHeight') + 'px';
  topRectHeight: string = AppStorage.get<number>('topRectHeight') + 'px';


  build() {
    Column() {
    }
    .backgroundColor(Color.Pink)
    .width("100%")
    .height('100%')
    .height(`calc(100% - ${this.bottomRectHeight} - ${this.topRectHeight})`)
    .margin({top: this.topRectHeight })
  }
}
分享
微博
QQ
微信
回复
2024-12-24 17:45:25
相关问题
HarmonyOS 如何page页面设置透明
992浏览 • 1回复 待解决
HarmonyOS windows级别页面设置
128浏览 • 1回复 待解决
HarmonyOS page设置全屏问题
354浏览 • 1回复 待解决
如何页面设置为深色模式
2581浏览 • 1回复 待解决
HarmonyOS 页面如何设置全屏显示?
1012浏览 • 1回复 待解决
HarmonyOS page页面如何设置半透明效果
309浏览 • 1回复 待解决
page页面如何设置为横屏显示
2033浏览 • 1回复 待解决
OpenGL无法正常渲染某些分辨率YUV数据
717浏览 • 0回复 待解决