HarmonyOS 自定义组件的隐藏和显示?

自定义组件的显示和隐藏有什么特定的生命周期吗

现在需要在隐藏和显示的时候做特殊的操作

阅读 488
1 个回答

没有用@Entry修饰的自定义组件,没有每次显示隐藏时触发的生命周期可用,可通过以下demo实现:

@Component
struct CComponent {
  //交给父组件控制
  @Link flage: Visibility
  build() {
      Column() {
        Text('自定义组件')
          .fontSize(20)
          .width('90%')
          .fontColor(0xCCCCCC) }
      .width('100%')
      .margin({ top: 50 })
      .height('100%')
      .visibility(this.flage)
    }
}

//父组件
@Entry @Component
struct VisibilityExample {
  @State @Watch("onVisibleChange") flage: Visibility = Visibility.Visible
 onVisibleChange() {
    console.log("flage: ", this.flage)
  }
  build() {
    Column() {
      Column() {
        Button("Hidden")
          .onClick(() => {
            this.flage = Visibility.Hidden
          })
        Button("Visible")
          .onClick(() => {
            this.flage = Visibility.Visible
          })
        Button("None")
          .onClick(() => {
            this.flage = Visibility.None
          })
        CComponent({ flage: this.flage })
      }.width('90%').
      border({ width: 1 }) }
    .width('100%')
    .margin({ top: 5 })
  }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进