文档管理中心
您当前正在浏览HarmonyOS最新文档,覆盖已发布的所有API版本,可在API参考中筛选您使用的API版本。详细的版本配套关系请参考版本说明
API参考应用框架ArkData(方舟数据管理)ArkTS 组件@ohos.data.UdmfComponents (内容卡片)

@ohos.data.UdmfComponents (内容卡片)

Phone20+PC/2in120+Tablet20+TV20+

针对ContentForm标准数据结构的内容卡片,支持设置标题(必选)、描述、应用图标、应用名称、跳转链接、内容图片。用户点击卡片时,执行传入的回调事件函数,若设置的跳转链接不为空,则跳转到指定的页面。

使用场景:

  • 社交应用分享内容展示
  • 即时通讯消息卡片
  • 内容推荐卡片
说明

该组件从API version 20开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。

本模块接口仅可在Stage模型下使用。

导入模块

收起
自动换行
深色代码主题
复制
  1. import { ContentFormCard, FormType } from '@kit.ArkData';

子组件

ContentFormCard

Phone20+PC/2in120+Tablet20+TV20+

ContentFormCard({contentFormData: uniformDataStruct.ContentForm, formType: FormType, formWidth?: number, formHeight?: number, handleOnClick?: Function})

内容卡片控件,用于在应用内展示标题、描述、内容图片、应用信息等。适用于内容分发、社交动态、消息通知等场景。

装饰器类型:@Component

系统能力: SystemCapability.DistributedDataManager.UDMF.Core

展开
名称 类型 必填 装饰器类型 说明
contentFormData uniformDataStruct.ContentForm - 内容卡片数据,用于设置卡片展示的标题、描述、应用图标、应用名称、跳转链接或内容图片等信息。
formType FormType @Prop 内容卡片类型,影响内容卡片的大小。
formWidth number @Prop 卡片宽度,其范围在设置的内容卡片类型默认宽度的0.8 ~ 1.2倍之间,当formType为TYPE_SMALL时,其范围在设置的内容卡片类型默认宽度的0.4 ~ 1.2倍之间。单位为vp。省略时使用内容卡片类型的默认宽度。
formHeight number @Prop 卡片高度,当contentFormData中的title为空字符串时,卡片高度为传入的值,否则其范围在设置的内容卡片类型默认高度的0.8 ~ 1.2倍之间,当formType为TYPE_SMALL时,其范围在设置的内容卡片类型默认高度的0.4 ~ 1.2倍之间。单位为vp。省略时使用内容卡片类型的默认高度。
handleOnClick Function - 点击事件回调函数。用户点击卡片时,会执行传入的回调函数,实现自定义点击行为。

FormType

Phone20+PC/2in120+Tablet20+TV20+

内容卡片类型枚举,提供了大、中、小三种尺寸。

系统能力: SystemCapability.DistributedDataManager.UDMF.Core

展开
名称 说明
TYPE_BIG 0 表示 4 x 4 的尺寸。默认卡片宽度为200vp,默认高度为200vp。
TYPE_MID 1 表示 4 x 2 的尺寸。默认卡片宽度为200vp,默认高度为100vp。
TYPE_SMALL 2 表示 2 x 1 的尺寸。默认卡片宽度为137vp,默认高度为83vp。

示例

收起
自动换行
深色代码主题
复制
  1. // 导入所需模块
  2. import { uniformDataStruct } from '@kit.ArkData'
  3. @Entry
  4. @Component
  5. struct Index {
  6. // 定义内容卡片数据
  7. @State contentForm: uniformDataStruct.ContentForm = {
  8. uniformDataType: 'general.content-form',
  9. title: ''
  10. };
  11. // 控制卡片显示状态
  12. @State startToShow: boolean = false;
  13. // 组件即将显示时初始化数据
  14. aboutToAppear(): void {
  15. this.initData();
  16. }
  17. // 初始化内容卡片数据
  18. async initData() {
  19. // 获取应用上下文
  20. let context = this.getUIContext().getHostContext();
  21. if (!context) {
  22. return;
  23. }
  24. try {
  25. // 加载应用图标和缩略图资源
  26. let appIcon = await context.resourceManager.getMediaContent($r('app.media.startIcon').id);
  27. let thumbImage = await context.resourceManager.getMediaContent($r('app.media.foreground').id);
  28. // 构建内容卡片数据对象
  29. this.contentForm = {
  30. uniformDataType: 'general.content-form',
  31. title: 'Content form title',
  32. thumbData: appIcon,
  33. description: 'Content form description',
  34. appIcon: thumbImage,
  35. appName: 'com.test.demo'
  36. };
  37. } catch (err) {
  38. console.error(`Init data error`);
  39. }
  40. }
  41. // 构建UI界面
  42. build() {
  43. Column() {
  44. // 显示按钮,点击后展示内容卡片
  45. Button('show card')
  46. .onClick(() => {
  47. this.startToShow = true;
  48. })
  49. // 条件渲染内容卡片组件
  50. if (this.startToShow) {
  51. ContentFormCard({
  52. contentFormData: this.contentForm,
  53. formType: FormType.TYPE_SMALL,
  54. formWidth: 110,
  55. formHeight: 50,
  56. // 点击卡片的回调函数
  57. handleOnClick: () => {
  58. console.info(`Clicked card`);
  59. }
  60. })
  61. }
  62. }
  63. }
  64. }

效果呈现

本例效果如下:

在 API参考 中进行搜索
请输入您想要搜索的关键词