HarmonyOS部分场景下expandSafeArea不生效

在Navigation页设置了margin后,影响了NavDestination页面,导致该页面的expandSafeArea不能扩展到导航条下。

Navigation页面的示例如下:

build() { 
  Column() { 
    Navigation(this.routeStack) { 
      Tabs({ barPosition: BarPosition.End, controller: this.controller }) { 
        // 1. Home 
      } 
      .navDestination(this.routerMap) // Navigation关联routerMap路由表 
      .hideTitleBar(true) // important 
    } 
    .width('100%') 
    .margin({ bottom: this.bottomRectHeight }) // 此处margin与导航条区域高度保持一致 
  }

NavDestination页面的示例如下:

build() { 
  NavDestination() { 
    Column() { 
      Text("ArkUI") 
        .fontSize(50) 
        .fontWeight(FontWeight.Bold) 
    } 
    .justifyContent(FlexAlign.Center) 
    .width('100%') 
    .height('100%') 
    .backgroundColor(Color.Red) 
    .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP, SafeAreaEdge.BOTTOM]) 
  } 
  .hideTitleBar(true) 
  .onBackPressed(() => { 
    hilog.info(0x0000, TAG, "onBackPressed==="); 
    this.routeStack?.pop(); 
    return true 
  }) 
  .onReady((ctx: NavDestinationContext) => { 
    try { 
      hilog.info(0x0000, TAG, "onReady==="); 
      this.routeStack = ctx.pathStack; 
    } catch (e) { 
      hilog.error(0x0000, TAG, `onReady catch exception: ${JSON.stringify(e)}`); 
    } 
  }) 
}

代码地址:https://github.com/alibaba/flutter_boost/blob/main/example/ohos/entry/src/main/ets/pages/EntryPage.ets#L164

https://github.com/alibaba/flutter_boost/blob/main/example/ohos/entry/src/main/ets/pages/NativePage.ets#L42

HarmonyOS
2024-08-29 15:08:33
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zbw_apple

在扩展安全区域属性原理中有说明,子节点可以单独设置该属性,只需要自身边界和安全区域重合就可以延伸自身大小至非安全区域内。如果设置了margin属性会导致边界和安全区域无法重合,则不会有效果。https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-develop-apply-immersive-effects-0000001820435461-V5#section89942014473

Navigation承载了NavDestination,Navigation如果与安全区域没有重合的话,NavDestination也就不会有重合,所以不会触发延伸。

分享
微博
QQ
微信
回复
2024-08-29 17:05:11
相关问题
HarmonyOS expandSafeArea生效
134浏览 • 1回复 待解决
定位权限未开通能区分场景吗?
254浏览 • 1回复 待解决
HarmonyOS margin生效
432浏览 • 1回复 待解决
HarmonyOS @Observed生效问题
97浏览 • 1回复 待解决
HarmonyOS TextInput的stateStyles部分生效
338浏览 • 1回复 待解决
HarmonyOS 关于onKeyEvent生效问题
138浏览 • 1回复 待解决
HarmonyOS 弹窗封装后open生效
197浏览 • 1回复 待解决
HarmonyOS 编译器配置生效
272浏览 • 1回复 待解决
HarmonyOS 组件切换深色模式生效
249浏览 • 1回复 待解决
HarmonyOS Badge文本颜色设置生效
113浏览 • 1回复 待解决
ConstraintSize尺寸设置生效
2211浏览 • 1回复 待解决
HarmonyOS right的padding和margin生效
446浏览 • 1回复 待解决
HarmonyOS hitTestBehavior.block生效
240浏览 • 1回复 待解决
HarmonyOS Panel 设置 borderRadius 生效
466浏览 • 1回复 待解决
使用position之后height生效
2266浏览 • 1回复 待解决
abiFilters配置生效
236浏览 • 1回复 待解决
音频播放长时任务生效
1777浏览 • 1回复 待解决
在嵌套组件中Scroll生效
1980浏览 • 1回复 待解决
Tab 设置 barBackgroundColor为透明生效
170浏览 • 1回复 待解决
容器组件onVisibleAreaChange生效
1721浏览 • 1回复 待解决
HarmonyOS 修改状态栏颜色生效
123浏览 • 1回复 待解决