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

鸿蒙next版开发:ArkTS组件通用属性(组件标识)

在HarmonyOS 5.0中,ArkTS的组件标识(ID)是开发中常用的一种属性,它为应用内的每个组件提供了一个唯一的标识符。这使得开发者能够在代码中引用特定的组件,执行操作如获取组件属性、发送事件等。本文将详细解读ArkTS中组件标识的通用属性,并提供示例代码进行说明 。

组件标识基础

组件标识(ID)是组件的唯一标识符,在整个应用内唯一 。通过这个标识符,开发者可以获取指定ID组件的属性,也提供向指定ID组件发送事件的功能 。

id属性

id属性用于为组件设置一个唯一的标识符。这个标识符可以是任何有效的字符串,但在整个应用中必须是唯一的 。

参数说明

  • value: 组件的唯一标识,由使用者保证其唯一性。
  • 默认值:空字符串 ''

key属性

key属性同样用于为组件设置唯一标识,但它主要用于应用的测试。与id属性同时使用时,后赋值的属性会覆盖先赋值的属性 。

参数说明

  • value: 组件的唯一标识,由使用者保证其唯一性。
  • 默认值:空字符串 ''

示例代码

以下是一个使用ArkTS组件标识属性的示例 :

@Entry
@Component
struct IdExample {
  @State text: string = '';

  build() {
    Flex({
      direction: FlexDirection.Column,
      alignItems: ItemAlign.Center,
      justifyContent: FlexAlign.Center
    }) {
      Button() {
        Text('onKeyTab')
          .fontSize(25)
          .fontWeight(FontWeight.Bold)
      }.margin({
        top: 20
      })
      .backgroundColor('#0D9FFB')
      .onKeyEvent(() => {
        this.text = "onKeyTab";
      });

      Button() {
        Text('click to start')
          .fontSize(25)
          .fontWeight(FontWeight.Bold)
      }.margin({
        top: 20
      })
      .onClick(() => {
        console.info(getInspectorByKey("click"));
        console.info(JSON.stringify(getInspectorTree()));
        this.text = "Button 'click to start' is clicked";
        setTimeout(() => {
          sendEventByKey("longClick", 11, "");
        }, 2000);
      }).id('click');

      Button() {
        Text('longClick')
          .fontSize(25)
          .fontWeight(FontWeight.Bold)
      }.margin({
        top: 20
      })
      .backgroundColor('#0D9FFB')
      .gesture(
        LongPressGesture()
          .onActionEnd(() => {
            console.info('long clicked');
            this.text = "Button 'longClick' is longclicked";
            setTimeout(() => {
              let rect = Utils.getComponentRect('onTouch');
              let touchPoint: TouchObject = {
                id: 1,
                type: TouchType.Down,
                x: rect.left + (rect.right - rect.left) / 2,
                y: rect.top + (rect.bottom - rect.top) / 2,
                screenX: rect.left + (rect.right - rect.left) / 2,
                screenY: rect.left + (rect.right - rect.left) / 2,
                windowX: rect.left + (rect.right - rect.left) / 2,
                windowY: rect.left + (rect.right - rect.left) / 2,
                displayX: rect.left + (rect.right - rect.left) / 2,
                displayY: rect.left + (rect.right - rect.left) / 2,
              }
              sendTouchEvent(touchPoint);
              touchPoint.type = TouchType.Up;
              sendTouchEvent(touchPoint);
            }, 2000);
      })).id('longClick');
    }
    .width('100%')
    .height('100%');
  }
}

在这个示例中,我们创建了三个按钮组件,并为它们分别设置了id属性。通过这些id,我们可以在需要时获取这些按钮的属性或向它们发送事件 。

组件标识的用途

组件标识在ArkTS中有多种用途,包括:

  1. 获取组件属性:通过getInspectorByKey接口,可以获取指定ID组件的所有属性 。
  2. 发送事件:通过sendEventByKey接口,可以向指定ID组件发送事件 。
  3. 动态操作:在应用运行时,可以动态地对指定ID的组件进行操作,如更改样式、属性等。

结语

通过本文的介绍,你应该对HarmonyOS 5.0中ArkTS组件的标识有了基本的了解。组件标识是UI开发中的重要工具,合理利用这些属性可以使你的应用开发更加高效和灵活。希望本文能够帮助你在开发过程中更好地利用ArkTS的组件标识属性 。


http://www.kler.cn/a/393404.html

相关文章:

  • Spring高手之路26——全方位掌握事务监听器
  • vue2.7.14 + vant + vue cli脚手架转vite启动运行问题记录
  • 【mysql】使用宝塔面板在云服务器上安装MySQL数据库并实现远程连接
  • MySql结合element-plus pagination的分页查询
  • LeetCode【0031】下一个排列
  • vue2或vue3的name属性有什么作用?
  • vue计算属性 初步使用案例
  • 当下中小微企业该不该跟风「大模型热潮」?
  • 信创防泄露是什么?如何实现信创防泄露?
  • PVE纵览-Proxmox VE SDN入门指南:构建灵活的虚拟网络
  • 网站架构知识之Ansible进阶(day022)
  • 【网络工程】计算机硬件概述
  • 实习冲刺练习 第二十一天
  • Android Framework AMS(16)进程管理
  • Qt第三课 ----------布局
  • 国内AI工具复现GPTs效果详解
  • vue文本高亮处理
  • 【Git】如何在 Git 项目中引用另一个 Git 项目:子模块与子树合并
  • 学习threejs,导入STL格式的模型
  • 【Linux】ELF可执行程序和动态库加载
  • CSS高级技巧_精灵图_字体图标_CSS三角_vertical-align(图像和文字居中在同一行)_溢出文字省略号显示
  • 随机森林(Random Forest)算法Python代码实现
  • 数据量大Excel卡顿严重?选对报表工具提高10倍效率
  • 同三维T85HU HDMI+USB摄像机多路多机位手机直播采集卡
  • 浅析pytorch中的常见函数和方法
  • 128.WEB渗透测试-信息收集-ARL(19)