HarmonyOS .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP]) 在Tabs组件中不生效

布局是

Tabs({barPosition:BarPosition.End,index:this.currentIndex}) {
  ForEach(this.tabItems, (item: MainTabItem,index?:number) => {
    if (item.tabType==MainTabType.USE_CAR){
      TabContent() {
        UseCarComponent()
      }.tabBar(this.tabBarItemBuilder(item,index))
      .tabIndex(index)
    }
    if (item.tabType==MainTabType.USE_CAR_ORDER){
      TabContent() {
        UseCarOrderComponent()
      }.tabBar(this.tabBarItemBuilder(item,index))
      .tabIndex(index)
    }
    if (item.tabType==MainTabType.RECOMMEND){
      TabContent() {
        RecommendComponent()
      }.tabBar(this.tabBarItemBuilder(item,index))
      .tabIndex(index)
    }
    if (item.tabType==MainTabType.MINE){
      TabContent() {
        MineComponent()
      }.tabBar(this.tabBarItemBuilder(item,index))
      .tabIndex(index)
    }
  })
}
.onChange((index)=>{
  this.currentIndex = index
})
.scrollable(true)
.barWidth('100%')
.barHeight(49)
.animationMode(AnimationMode.ACTION_FIRST)
.divider({strokeWidth:0.5,color:$r('app.color.color_block_10')})
.width('100%')
.height('100%')

我想要在切换到tab1 和 Tab3 进行沉浸式布局,使用.expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP]) ,在Tabs 组件中并不生效

HarmonyOS
2天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zxjiu

通过设置安全区域然后在tabcontent上设置clip为false,可以设置单个tabContent沉浸式

//demo:
@Entry
@Component
struct tabContent1 {
  @State message: string = 'Hello World‘;

  build() {
    Tabs({ barPosition: BarPosition.End }) {
      TabContent() {
        Row() {
          Text('首页的内容‘).fontSize(30).width('100%‘).height('100%‘).backgroundColor(Color.Red)
            .onClick(() => {
              router.pushUrl({url: 'pages/SecondPage‘})
            })
            .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP, SafeAreaEdge.BOTTOM])
        }.height('100%‘)
      }
      .clip(false)
      .tabBar('首页‘)
      TabContent() {
        Text('推荐的内容’).fontSize(30)
      }
      .tabBar('推荐‘)
    }
    .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP, SafeAreaEdge.BOTTOM])
    .width('100%‘)
    .height('100%‘)
  }
}
分享
微博
QQ
微信
回复
2天前
相关问题
HarmonyOS expandSafeArea生效
342浏览 • 1回复 待解决
Left、Top为什么生效
798浏览 • 1回复 待解决
嵌套组件Scroll生效
2187浏览 • 1回复 待解决
HarmonyOS部分场景下expandSafeArea生效
1068浏览 • 1回复 待解决
HarmonyOS Web组件borderRadius生效
29浏览 • 1回复 待解决
容器组件onVisibleAreaChange生效
1908浏览 • 1回复 待解决
HarmonyOS 组件切换深色模式生效
432浏览 • 1回复 待解决
HarmonyOS margin生效
658浏览 • 1回复 待解决
Web组件的onKeyEvent键盘事件生效
2037浏览 • 1回复 待解决