当前位置: 首页 > news >正文

鸿蒙用 BuilderParam 实现同一个布局不同内容组件

面通过一个案例展示@BuilderParam的具体用法,例如,现需要实现一个通用的卡片组件,如下图所示

image.png

卡片中显示的内容不固定,例如

image.png

具体实现代码如下:

@Entry
@Component
struct BuildParamDemo {

  build() {

    Column(){

      Card() {
        imageBuilder()
      }

      Divider()
        .margin(10)

      Card() {
        textBuilder()
      }

    }

  }

}

@Builder function textBuilder() {
  Column({ space: 10 }) {
    Text('鸿蒙操作系统')
      .fontSize(25)
      .fontWeight(FontWeight.Bold)
    Text('华为鸿蒙HarmonyOS系统是面向万物互联的全场景分布式操作系统,支持手机、平板、智能穿戴、智慧屏等多种终端设备运行,提供应用开发、设备开发的一站式服务的平台。')
  }
}


@Builder function imageBuilder() {
  Column({ space: 10 }) {
    Image($r('app.media.img_harmony'))
      .width(300)
      .height(150)
    Text('鸿蒙操作系统')
  }
}


@Component
struct Card {
  @BuilderParam content: () => void; //@BuilderParam属性

  build() {
    Column() {
      this.content(); //占位符
    }.width('90%')
    .padding(10)
    .borderRadius(10)
    .shadow({ radius: 20 })
  }
}复制

结果图:

cke_6477.png

相关文章:

  • 值传递和址传递
  • C语言:头歌使用函数找出数组中的最大值
  • Spring框架的原理及应用详解(三)
  • 【计算机视觉】人脸算法之图像处理基础知识(五)
  • 178.二叉树:最大二叉树(力扣)
  • word空白页删除不了怎么办?
  • Linux C编译器从零开发一
  • JVM 根可达算法
  • C++ 20新特性之线程与jthread
  • Matlab的Simulink系统仿真(simulink调用m函数)
  • 一文搞定 大语言模型(LLM)微调方法
  • C# Winform 用户控件,扩展控件,自定义控件综合实例
  • STM32项目分享:智能窗帘系统
  • IT入门知识博客文章大纲第二部分《编程语言》(2/10)
  • Qt QStackedWidget类详细分析
  • SVN 报错Error: Unable to connect to a repository at URL解决方法
  • 【考研数据结构——C语言描述】第四章 串
  • MySQL的高可用方案:深入Galera Cluster和ProxySQL
  • 【Docker系列】跨平台 Docker 镜像构建:深入理解`--platform`参数
  • Golang - 连接MySQL执行查询脚本
  • 48岁黄世芳履新中国驻毛里求斯大使,曾在广西工作多年
  • 台湾花莲县海域发生5.7级地震,震源深度15公里
  • “五一”第三天郑州铁路局预计发送旅客76万人
  • 叙利亚多地遭以色列空袭
  • 涉嫌严重违纪违法,57岁证监会副主席王建军被查
  • TCL科技一季度净利增超三倍,去年半导体显示业务营收创新高