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
2024-12-24 18:09:25
浏览
收藏 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
微信
回复
2024-12-24 19:33:17
相关问题
HarmonyOS expandSafeArea生效
667浏览 • 1回复 待解决
Left、Top为什么生效
1118浏览 • 1回复 待解决
HarmonyOS部分场景下expandSafeArea生效
1211浏览 • 1回复 待解决
嵌套组件Scroll生效
2333浏览 • 1回复 待解决
HarmonyOS Web组件borderRadius生效
363浏览 • 1回复 待解决
容器组件onVisibleAreaChange生效
2185浏览 • 1回复 待解决
HarmonyOS ArkWeb组件加载url生效
381浏览 • 1回复 待解决
HarmonyOS 组件切换深色模式生效
633浏览 • 1回复 待解决