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 })
  }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
分享
微博
QQ
微信
回复
2024-12-24 17:45:25
相关问题
HarmonyOS 如何page页面设置透明
1537浏览 • 1回复 待解决
HarmonyOS page设置全屏问题
853浏览 • 1回复 待解决
HarmonyOS windows级别页面设置
572浏览 • 1回复 待解决
如何进行主入口页面设置
283浏览 • 0回复 待解决
如何页面设置为深色模式
3053浏览 • 1回复 待解决
HarmonyOS 页面如何设置全屏显示?
2033浏览 • 1回复 待解决
HarmonyOS page页面如何设置半透明效果
738浏览 • 1回复 待解决
page页面如何设置为横屏显示
2448浏览 • 1回复 待解决
OpenGL无法正常渲染某些分辨率YUV数据
1392浏览 • 0回复 待解决