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生效
291浏览 • 1回复 待解决
定位权限未开通能区分场景吗?
409浏览 • 1回复 待解决
HarmonyOS margin生效
631浏览 • 1回复 待解决
HarmonyOS @Observed生效问题
440浏览 • 1回复 待解决
HarmonyOS margin生效问题
52浏览 • 1回复 待解决
HarmonyOS TextInput的stateStyles部分生效
485浏览 • 1回复 待解决
HarmonyOS 关于onKeyEvent生效问题
353浏览 • 1回复 待解决
HarmonyOS Stack 里 align生效
56浏览 • 1回复 待解决
HarmonyOS photoViewPicker智能推荐生效
325浏览 • 1回复 待解决
HarmonyOS Badge文本颜色设置生效
278浏览 • 1回复 待解决
HarmonyOS 编译器配置生效
463浏览 • 1回复 待解决
HarmonyOS 弹窗封装后open生效
347浏览 • 1回复 待解决
HarmonyOS 组件切换深色模式生效
404浏览 • 1回复 待解决
ConstraintSize尺寸设置生效
2388浏览 • 1回复 待解决
abiFilters配置生效
432浏览 • 1回复 待解决
HarmonyOS stack设置圆角生效
64浏览 • 1回复 待解决
HarmonyOS hitTestBehavior.block生效
389浏览 • 1回复 待解决
HarmonyOS Panel 设置 borderRadius 生效
699浏览 • 1回复 待解决
HarmonyOS right的padding和margin生效
789浏览 • 1回复 待解决
使用position之后height生效
2420浏览 • 1回复 待解决
容器组件onVisibleAreaChange生效
1870浏览 • 1回复 待解决