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生效
815浏览 • 1回复 待解决
HarmonyOS margin生效
494浏览 • 1回复 待解决
HarmonyOS @Observed生效问题
226浏览 • 1回复 待解决
HarmonyOS 关于onKeyEvent生效问题
208浏览 • 1回复 待解决
HarmonyOS photoViewPicker智能推荐生效
137浏览 • 1回复 待解决
HarmonyOS hitTestBehavior.block生效
301浏览 • 1回复 待解决
HarmonyOS Panel 设置 borderRadius 生效
558浏览 • 1回复 待解决
HarmonyOS 弹窗封装后open生效
262浏览 • 1回复 待解决
HarmonyOS 编译器配置生效
352浏览 • 1回复 待解决
HarmonyOS Badge文本颜色设置生效
175浏览 • 1回复 待解决
HarmonyOS 组件切换深色模式生效
312浏览 • 1回复 待解决
abiFilters配置生效
305浏览 • 1回复 待解决
ConstraintSize尺寸设置生效
2289浏览 • 1回复 待解决
HarmonyOS right的padding和margin生效
563浏览 • 1回复 待解决
容器组件onVisibleAreaChange生效
1772浏览 • 1回复 待解决
使用position之后height生效
2346浏览 • 1回复 待解决
HarmonyOS 修改状态栏颜色生效
198浏览 • 1回复 待解决
HarmonyOS 设置了icon和label生效
81浏览 • 1回复 待解决
textfield的截断属性生效
2734浏览 • 1回复 待解决
通过WindowProperties设置属性生效
2061浏览 • 1回复 待解决
Left、Top为什么生效
704浏览 • 1回复 待解决
在嵌套组件中Scroll生效
2052浏览 • 1回复 待解决
音频播放长时任务生效
1845浏览 • 1回复 待解决