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

简介: 在HarmonyOS 5.0中,ArkTS的组件标识(ID)为每个组件提供唯一标识符,方便开发者引用和操作组件。本文详细解读了id和key属性的使用方法,并提供了示例代码,展示了如何通过组件标识获取属性、发送事件及动态操作组件。

在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中有多种用途,包括:

获取组件属性:通过getInspectorByKey接口,可以获取指定ID组件的所有属性 。
发送事件:通过sendEventByKey接口,可以向指定ID组件发送事件 。
动态操作:在应用运行时,可以动态地对指定ID的组件进行操作,如更改样式、属性等。
结语
通过本文的介绍,你应该对HarmonyOS 5.0中ArkTS组件的标识有了基本的了解。组件标识是UI开发中的重要工具,合理利用这些属性可以使你的应用开发更加高效和灵活。希望本文能够帮助你在开发过程中更好地利用ArkTS的组件标识属性 。
————————————————

                        版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/lbcyllqj/article/details/143646156

目录
相关文章
|
4天前
|
Android开发
鸿蒙开发:自定义一个简单的标题栏
本身就是一个很简单的标题栏组件,没有什么过多的技术含量,有一点需要注意,当使用沉浸式的时候,注意标题栏的位置,需要避让状态栏。
鸿蒙开发:自定义一个简单的标题栏
|
4天前
|
API
鸿蒙开发:切换至基于rcp的网络请求
本文的内容主要是把之前基于http封装的库,修改为当前的Remote Communication Kit(远场通信服务),无非就是通信的方式变了,其他都大差不差。
鸿蒙开发:切换至基于rcp的网络请求
|
9天前
|
UED
鸿蒙next版开发:相机开发-适配不同折叠状态的摄像头变更(ArkTS)
在HarmonyOS 5.0中,ArkTS提供了强大的相机开发能力,特别是针对折叠屏设备的摄像头适配。本文详细介绍了如何在ArkTS中检测和适配不同折叠状态下的摄像头变更,确保相机应用在不同设备状态下的稳定性和用户体验。通过代码示例展示了具体的实现步骤。
35 8
|
9天前
|
前端开发 开发者
鸿蒙next版开发:相机开发-元数据(ArkTS)
在HarmonyOS 5.0中,ArkTS新增了对相机元数据的访问能力,帮助开发者获取图像的详细信息。本文介绍了如何在ArkTS中获取和使用相机元数据,包括导入接口、创建元数据输出流、开启和停止元数据输出、监听元数据对象可用事件等步骤,并提供了详细的代码示例。
27 5
|
9天前
|
前端开发 API 开发者
鸿蒙next版开发:相机开发-录像(ArkTS)
在HarmonyOS 5.0中,ArkTS提供了一套完整的API来管理相机录像功能。本文详细介绍了如何在ArkTS中实现录像功能,包括导入接口、创建Surface、获取相机输出能力、创建会话并开始录像以及监听录像输出流状态,并提供了代码示例进行解读。希望本文能帮助开发者更好地利用ArkTS的相机录像功能。
26 5
|
移动开发 Ubuntu 网络协议
嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令(中)
嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令
170 1
嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令(中)
|
XML Web App开发 开发框架
鸿蒙开发入门 | 开发第一个鸿蒙应用+页面跳转
准备好鸿蒙开发环境后,接下来就需要创建鸿蒙项目,掌握项目的创建过程以及配置。项目创建好后,需要把项目运行在模拟器上,鸿蒙的模拟和安卓模拟器有些不同,鸿蒙提供远程模拟器和本地模拟器,通过登录华为账号登录在线模拟器,使用DevEco Studio可将项目部署到远程模拟器中。
1265 1
鸿蒙开发入门 | 开发第一个鸿蒙应用+页面跳转
|
存储 Ubuntu 前端开发
嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令(下)
嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令
335 0
嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令(下)
|
存储 编解码 Ubuntu
嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令(上)
嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令
227 0
嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令(上)
|
开发工具
HarmonyOS(鸿蒙)开发一文入门
HarmonyOS(鸿蒙)开发一文入门
170 0
HarmonyOS(鸿蒙)开发一文入门