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生效
175浏览 • 1回复 待解决
定位权限未开通能区分场景吗?
295浏览 • 1回复 待解决
HarmonyOS margin生效
489浏览 • 1回复 待解决
HarmonyOS TextInput的stateStyles部分生效
383浏览 • 1回复 待解决
HarmonyOS @Observed生效问题
216浏览 • 1回复 待解决
HarmonyOS 关于onKeyEvent生效问题
204浏览 • 1回复 待解决
HarmonyOS photoViewPicker智能推荐生效
99浏览 • 1回复 待解决
HarmonyOS Panel 设置 borderRadius 生效
545浏览 • 1回复 待解决
HarmonyOS hitTestBehavior.block生效
288浏览 • 1回复 待解决
HarmonyOS Badge文本颜色设置生效
167浏览 • 1回复 待解决
HarmonyOS 组件切换深色模式生效
297浏览 • 1回复 待解决
HarmonyOS 弹窗封装后open生效
255浏览 • 1回复 待解决
HarmonyOS 编译器配置生效
335浏览 • 1回复 待解决
abiFilters配置生效
291浏览 • 1回复 待解决
ConstraintSize尺寸设置生效
2277浏览 • 1回复 待解决
HarmonyOS right的padding和margin生效
555浏览 • 1回复 待解决
容器组件onVisibleAreaChange生效
1759浏览 • 1回复 待解决
使用position之后height生效
2324浏览 • 1回复 待解决
HarmonyOS 修改状态栏颜色生效
174浏览 • 1回复 待解决
HarmonyOS 设置了icon和label生效
75浏览 • 1回复 待解决
Left、Top为什么生效
691浏览 • 1回复 待解决
通过WindowProperties设置属性生效
2049浏览 • 1回复 待解决