自定义组件是否有生命周期可见不可见?

主页面是一个TAB里面有n个TAB的内容,目前每个TAB的内容都是可以有生命周期的(create、resume、pause、stop、destroy),目前采用了Tabs来实现,但是每一个TAB的内容是component,没有类似上面的生命周期,是否有其他方案可以替代,或者tab下面可以用entry页面来代替吗?

HarmonyOS
2024-04-29 22:41:37
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
depengli

架构设计上采用Tabs结合Navigation的思路,demo参考如下:

// Tabs组件 
@Entry 
@Component 
export struct TabsExample { 
  build() { 
    Tabs({ barPosition: BarPosition.End }) { 
// Atab内部使用Navigation切换多个内容 
TabContent() { 
NavigationExample() 
}.tabBar(‘A’) 
 
  TabContent() { 
    Column() 
      .width('100%') 
      .height('100%') 
      .backgroundColor('#007DFF') 
  }.tabBar('B') 
 
    TabContent() { 
      Column() 
        .width('100%') 
        .height('100%') 
        .backgroundColor('#FFBF00') 
    }.tabBar('C') 
 
    TabContent() { 
      Column() 
        .width('100%') 
        .height('100%') 
        .backgroundColor('#E67C92') 
    }.tabBar('D') 
  } 
} 
} 
 
// A栏内容为Navigation,list列表上为babyid,依赖状态管理, 
@Component 
struct NavigationExample { 
  private arr: number[] = [1, 2, 3]; 
  @Provide(‘pageInfos’) pageInfos: NavPathStack = new NavPathStack(); 
 
  // Navigation组件导航配置,支持自定义组件 
  @Builder 
  pageMap(name: string) { 
NavDestination() { 
if (name === ‘1’) { 
Text(“NavDestinationContent” + name) 
} else if (name === ‘2’) { 
Text(“NavDestinationContent” + name) 
} else if (name === ‘3’) { 
  Text(“NavDestinationContent” + name) 
} 
} 
.title(“NavDestinationTitle” + name) 
} 
build() { 
Column() { 
Navigation(this.pageInfos) { 
List({ space: 12 }) { 
ForEach(this.arr, (item: number) => { 
ListItem() { 
Button(“baby” + item) 
.width(‘100%’) 
.onClick(() => { 
this.pageInfos.pushPathByName(item.toString(), ‘’) 
}) 
} 
}) 
} 
} 
.navDestination(this.pageMap) 
} 
.height(‘100%’) 
.width(‘100%’) 
}

navigation资料请参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-basic-components-navigation-0000001815927580目前navigation推荐使用NavPathStack,不推荐使用NavRouter目前nav的左滑返回和左上角的返回都是走onBackPressed,不能实现只屏蔽系统侧滑返回,如述求强烈,请提供详细的需求说明

分享
微博
QQ
微信
回复
2024-04-30 21:17:34
相关问题
UIAbility如何设置不可见
2074浏览 • 1回复 待解决
Dialog组件生命周期问题
330浏览 • 1回复 待解决
如何知晓navigation组件生命周期
262浏览 • 1回复 待解决
监听Ability生命周期
1180浏览 • 1回复 待解决