文档管理中心

基于标准化数据结构的控件 (ArkTS)

场景介绍

我们提供了部分标准化数据结构的预置卡片,当需要展示标准化数据结构数据时,可以直接引用提供的预置卡片,快捷地展示数据。

内容卡片控件

在需要展示内容(标题、描述、图片、应用信息)并在点击后跳转至对应来源时,可以使用内容卡片快速地展示信息。开发者只需要调用ContentFormCard接口,传入ContentForm数据、卡片宽高、点击事件回调函数即可获得良好的展示效果。

从API version 20开始,支持使用内容卡片控件UdmfComponents。

接口说明

以下为内容卡片接口介绍:

展开
接口名称 描述
ContentFormCard({contentFormData: uniformDataStruct.ContentForm, formType: FormType, formWidth?: number, formHeight?: number, handleOnClick?: Function}) 按照固定的样式展示传入的内容卡片数据,并在点击操作时,执行回调函数,并跳转至配置的页面。

开发示例

收起
自动换行
深色代码主题
复制
  1. // 1. 导入需要的模块
  2. import { ContentFormCard, FormType, uniformDataStruct } from '@kit.ArkData';
  3. import { hilog } from '@kit.PerformanceAnalysisKit';
  4. @Entry
  5. @Component
  6. struct Index {
  7. @State contentForm: uniformDataStruct.ContentForm = {
  8. uniformDataType: 'general.content-form',
  9. title: ''
  10. };
  11. @State startToShow: boolean = false;
  12. aboutToAppear(): void {
  13. // 2. 初始化数据
  14. this.initData();
  15. }
  16. async initData() {
  17. let context = this.getUIContext().getHostContext();
  18. if (!context) {
  19. return;
  20. }
  21. try {
  22. let appIcon = await context.resourceManager.getMediaContent($r('app.media.startIcon').id);
  23. let thumbImage = await context.resourceManager.getMediaContent($r('app.media.foreground').id);
  24. this.contentForm = {
  25. uniformDataType: 'general.content-form',
  26. title: 'Content form title',
  27. thumbData: thumbImage,
  28. description: 'Content form description',
  29. appIcon: appIcon,
  30. appName: 'com.test.demo'
  31. };
  32. } catch (err) {
  33. hilog.error(0xFF00, '[Sample_Udmf]', 'Init data error');
  34. }
  35. }
  36. build() {
  37. Column() {
  38. Button('show card').fontSize(30)
  39. .onClick(() => {
  40. // 3. 点击后startToShow变为true,页面重新渲染
  41. this.startToShow = true;
  42. })
  43. if (this.startToShow) {
  44. // 4. 使用内容卡片,传入对应的参数
  45. ContentFormCard({
  46. contentFormData: this.contentForm,
  47. formType: FormType.TYPE_SMALL,
  48. formWidth: 220,
  49. formHeight: 100,
  50. handleOnClick: () => {
  51. hilog.info(0xFF00, '[Sample_Udmf]', 'Clicked card');
  52. }
  53. })
  54. }
  55. }
  56. .height('100%')
  57. .width('100%')
  58. .justifyContent(FlexAlign.Center)
  59. }
  60. }
在 指南 中进行搜索
请输入您想要搜索的关键词