HarmonyOS 鸿蒙Next想在builder中插入builder

发布于 1周前 作者 sinazl 来自 鸿蒙OS

HarmonyOS 鸿蒙Next想在builder中插入builder

想在builder中插入builder 怎么操作

2 回复
参考以下文档:

https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/quick-start/arkts-builderparam.md

并参考以下demo:

[@Component](/user/Component)
struct activeDialog {
  [@Builder](/user/Builder)
  customBuilder() {
  }
  // 使用父组件[@Builder](/user/Builder)装饰的方法初始化子组件[@BuilderParam](/user/BuilderParam)
  [@BuilderParam](/user/BuilderParam) customBuilderParam: () => void = this.customBuilder;
  build() {
    Column({ space: 5 }) {
      Text('9998888888')
      // this.customBuilderParam()
    }.width('100%').height('100%').justifyContent(FlexAlign.Center)
  }
}
[@Entry](/user/Entry)
[@Component](/user/Component)
struct Parent {
  [@State](/user/State) isShow: boolean = true
  [@Builder](/user/Builder) componentBuilder() {
    Text(`Parent builder `)
  }
  build() {
    Column() {
      activeDialog({customBuilderParam: this.componentBuilder})
    }
    .bindContentCover(this.isShow, this.componentBuilder(), {
      modalTransition: ModalTransition.NONE,
      // backgroundColor: 'rgba(0,0,0,0.5)',
      onAppear: () => {
        console.log("BindContentCover onAppear.")
      },
      onDisappear: () => {
        console.log("BindContentCover onDisappear.")
      }
    })
  }
} 

更多关于HarmonyOS 鸿蒙Next想在builder中插入builder的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next的开发环境中,如果你希望在Builder中插入Builder(即在一个布局构建器内嵌套另一个布局构建器),可以通过以下方式实现:

  1. 创建子Builder:首先,需要为你的子布局创建一个新的XML文件或者通过代码动态生成布局。这个文件会定义子布局的结构和内容。

  2. 引用子Builder:在主Builder的XML文件中,使用<include>标签或者通过代码的方式引用子Builder。如果使用<include>标签,确保指定子布局文件的路径。例如:

    <DirectionalLayout>
        <include layout="@layout/child_layout"/>
    </DirectionalLayout>
    
  3. 通过代码插入:如果选择通过代码方式,可以在JavaScript或TypeScript的页面逻辑中,使用布局构建API动态添加子Builder。这需要创建子布局实例,并将其添加到主布局中。

  4. 调试与预览:在DevEco Studio中运行应用,查看嵌套布局是否按预期显示。利用预览工具调整布局细节。

注意,确保子Builder中的组件ID不与主Builder中的组件ID冲突,以避免运行时错误。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部