HarmonyOS expandSafeArea不生效

如图,expandSafeArea不生效。

HarmonyOS expandSafeArea不生效-鸿蒙开发者社区

HarmonyOS
2024-10-16 11:30:31
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Heiang

可参考demo:

@Entry  
@Component  
struct Index {  
  private controller: TabsController = new TabsController()  
  build() {  
   Stack({ alignContent: Alignment.Bottom}){  
     Column() {  
       Tabs({barPosition: BarPosition.End,controller: this.controller}) {  
         TabContent() {  
           Text('首页的内容').fontSize(30)  
         }  
         .tabBar('首页')  
  
         TabContent() {  
           Text('推荐的内容').fontSize(30)  
         }  
         .tabBar('推荐')  
       }  
       Image($r('app.media.background'))  
         .width(70)  
         .height(70)  
     }  
     .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.BOTTOM,SafeAreaEdge.TOP])  
     .width('100%')  
     .height('100%')  
     .backgroundColor(Color.Green)  
   }  
  }  
}

安全区的适配仅仅对Column、Row、Image这些组件有效,ArkUI的安全区仅仅是拓展显示,并不支持将组件显示在状态栏相交的区域内。

clip默认是开启的,当tabs父节点设置clip时,子节点不能扩展安全区域,需要.clip(false)子节点才能扩展安全区域可参考demo:

@Entry  
@Component  
struct Index2 {  
  @State fontColor: string = '#182431'  
  @State selectedFontColor: string = '#007DFF'  
  @State currentIndex: number = 0  
  private controller: TabsController = new TabsController()  
  @Builder tabBuilder(index: number) {  
    Column() {  
      Text(`Tab${index + 1}`)  
        .fontColor(this.currentIndex === index ? this.selectedFontColor : this.fontColor)  
        .fontSize(10)  
        .fontWeight(500)  
        .lineHeight(14)  
        .margin({ top: 2 })  
      Image($r('app.media.1'))  
        .width(28)  
        .height(28)  
        .objectFit(ImageFit.Contain)  
    }  
    .width('100%')  
    .height('100%')  
  }  
  build() {  
    Stack({ alignContent: Alignment.Bottom}){  
      Column() {  
        Tabs({barPosition: BarPosition.End,controller: this.controller}) {  
          TabContent() {  
            Text('首页的内容').fontSize(30)  
          }  
          .tabBar(this.tabBuilder(0))  
          .backgroundColor(Color.Green)  
          .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.BOTTOM,SafeAreaEdge.TOP])  
          TabContent() {  
            Text('推荐的内容').fontSize(30)  
          }  
          .tabBar(this.tabBuilder(1))  
          .backgroundColor(Color.Pink)  
        }  
        .clip(false)  
        Image($r('app.media.1'))  
          .width(28)  
          .height(28)  
      }  
      .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.BOTTOM,SafeAreaEdge.TOP])  
      .width('100%')  
      .height('100%')  
    }  
  }  
}
分享
微博
QQ
微信
回复
2024-10-16 15:51:35
相关问题
HarmonyOS部分场景下expandSafeArea生效
1065浏览 • 1回复 待解决
HarmonyOS margin生效
656浏览 • 1回复 待解决
HarmonyOS margin生效问题
102浏览 • 1回复 待解决
HarmonyOS @Observed生效问题
481浏览 • 1回复 待解决
HarmonyOS targetSpace生效问题
28浏览 • 1回复 待解决
abiFilters配置生效
469浏览 • 1回复 待解决
HarmonyOS photoViewPicker智能推荐生效
341浏览 • 1回复 待解决
HarmonyOS Stack 里 align生效
79浏览 • 1回复 待解决
HarmonyOS 关于onKeyEvent生效问题
385浏览 • 1回复 待解决
HarmonyOS Web组件borderRadius生效
27浏览 • 1回复 待解决
HarmonyOS hitTestBehavior.block生效
416浏览 • 1回复 待解决
HarmonyOS Panel 设置 borderRadius 生效
714浏览 • 1回复 待解决
HarmonyOS stack设置圆角生效
97浏览 • 1回复 待解决
ConstraintSize尺寸设置生效
2412浏览 • 1回复 待解决
容器组件onVisibleAreaChange生效
1898浏览 • 1回复 待解决
HarmonyOS 枚举值条件判断生效
30浏览 • 1回复 待解决
HarmonyOS Badge文本颜色设置生效
297浏览 • 1回复 待解决
HarmonyOS 编译器配置生效
490浏览 • 1回复 待解决