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

北京市网站建设企业怎么自己开发一个app软件

北京市网站建设企业,怎么自己开发一个app软件,湛江网站建设团队,wordpress主题module一、背景 在开发过程中,获取组件的宽高和位置信息是一个常见的需求。本文将介绍几种获取组件宽高和位置的方法,并通过代码示例详细说明如何使用这些方法。 二、获取方式 2.1、使用 getRectangleById getRectangleById 方法可以获取组件的大小、位置、…

一、背景

在开发过程中,获取组件的宽高和位置信息是一个常见的需求。本文将介绍几种获取组件宽高和位置的方法,并通过代码示例详细说明如何使用这些方法。

二、获取方式

2.1、使用 getRectangleById

getRectangleById 方法可以获取组件的大小、位置、平移、缩放、旋转以及仿射矩阵等属性信息。使用该方法时,首先需要通过 UIContext 中的 getComponentUtils() 方法获取 ComponentUtils 对象,然后通过该对象调用 getRectangleById 方法。

代码示例

import { componentUtils } from '@kit.ArkUI'@Entry
@Component
struct GetRectangleByIdPage {private arr: number[] = [0, 1, 2, 3, 4, 5]build() {Column() {List({ space: 20, initialIndex: 0 }) {ForEach(this.arr, (item: number) => {ListItem() {Text('' + item).width('100%').height(100).fontSize(16).textAlign(TextAlign.Center).borderRadius(10).backgroundColor(0xFFFFFF).id(item.toString())}}, (item: string) => item)}.listDirection(Axis.Vertical) // 排列方向.scrollBar(BarState.Off).friction(0.6).divider({ strokeWidth: 2, color: 0xFFFFFF, startMargin: 20, endMargin: 20 }) // 每行之间的分界线.edgeEffect(EdgeEffect.Spring) // 边缘效果设置为Spring.width('90%')Button('获取点击组件的位置').onClick(()=>{let obj = componentUtils.getRectangleById('4');console.log('lucy== obj',JSON.stringify(obj))})}.width('100%').height('100%').backgroundColor(0xDCDCDC).padding({ top: 5 })}
}

输出结果

点击按钮后,控制台会输出对应组件的大小及位置信息: 

lucy== obj {"size":{"width":972,"height":312.5},"localOffset":{"x":0,"y":0},"windowOffset":{"x":54,"y":1636},"screenOffset":{"x":54,"y":1636},"translate":{"x":0,"y":0,"z":0},"scale":{"x":1,"y":1,"z":1,"centerX":15552,"centerY":5008},"rotate":{"x":0,"y":0,"z":0,"angle":0,"centerX":15552,"centerY":5008},"transform":[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}

2.2、使用 onAreaChange

onAreaChange 方法在组件区域变化时触发回调。该方法仅会响应由布局变化所导致的组件大小、位置发生变化时的回调。

代码示例


@Entry
@Component
struct GetRectangleByIdPage {build() {Text('哈咯呀').onAreaChange((oldValue: Area, newValue: Area) =>{console.log('lucy== oldValue',JSON.stringify(oldValue))console.log('lucy== newValue',JSON.stringify(newValue))})}
}

输出结果

当组件区域发生变化时,控制台会输出变化前后的宽高及位置信息:

//其中newValue返回目标元素变化之后的宽高以及目标元素相对父元素和页面左上角的坐标位置。lucy== oldValue {"pos":{"x":0,"y":0},"position":{"x":0,"y":0},"globalPos":{"x":0,"y":0},"globalPosition":{"x":0,"y":0},"width":0,"height":0}lucy== newValue {"pos":{"x":0,"y":0},"position":{"x":0,"y":0},"globalPos":{"x":0,"y":38.72},"globalPosition":{"x":0,"y":38.72},"width":48,"height":18.88}

2.3、使用 onSizeChange

onSizeChange 方法在组件区域变化时触发回调,主要用于获取组件的宽高信息。

代码示例


@Entry
@Component
struct GetRectangleByIdPage {build() {Text('哈咯呀').onSizeChange((oldValue: SizeOptions, newValue: SizeOptions) =>{console.log('lucy== oldValue',JSON.stringify(oldValue))console.log('lucy== newValue',JSON.stringify(newValue))})}
}

输出结果

当组件大小发生变化时,控制台会输出变化前后的宽高信息:

lucy== oldValue {"width":0,"height":0}lucy== newValue {"width":48,"height":18.88}

2.4、总结

  • getRectangleById:适用于需要获取组件的详细属性信息,包括大小、位置、平移、缩放、旋转等。

  • onAreaChange:适用于监听组件区域变化,获取变化前后的宽高及位置信息。

  • onSizeChange:适用于监听组件大小变化,获取变化前后的宽高信息。

根据具体需求选择合适的方法,可以更高效地获取组件的宽高和位置信息。

http://www.dtcms.com/a/470214.html

相关文章:

  • 基于springboot的技术交流和分享平台的设计与实现
  • Spring Boot 处理JSON的方法
  • 在Gin项目中使用API接口文档Swagger
  • asp.net 4.0网站开发高级视频教程订阅号怎么做免费的视频网站吗
  • 重庆响应式网站制作没有后台的网站怎么做排名
  • ENSP Pro Lab笔记:配置STP/RSTP/MSTP(1)
  • ajax 效果网站中国室内装饰设计网
  • 5-流程控制语句
  • Dify实战:调试技巧深度解析
  • Linux下Mysql初始化如,密码如何查找
  • 2025知识管理平台深度测评:从工具进化为智能决策引擎
  • 网站后台开发教程jsp网站缓存在哪
  • 网站页面怎么做的好看百度在西安的公司叫什么
  • Python 打印1-100的素数
  • 创建子进程时的一些细节
  • STM32 EC11旋转编码器扫描读取
  • 如何对抗GPS欺骗式干扰之二:多天线阵列测向的识别原则和应用场景
  • Linux 内核网络调优:单连接大带宽吞吐配置
  • STM32 外设驱动模块【含代码】:XY摇杆模块
  • 商会网站模板河南核酸检测vip
  • 外骨骼手套带来了一种仅用手就能与XR进行交互的更自然的方式
  • 学习随笔-Math
  • Android 权限模型(前台、后台、特殊权限)
  • 成安专业做网站公司注册的流程与步骤
  • 多个编码智能体同时使用会不会混乱?
  • wpf中调用NumericUpDown控件
  • JVM(九)-- 类的生命周期
  • 数字孪生重构智慧园区:众趣科技何以成为 VR 园区领域标杆
  • LeetCode 刷题【113. 路径总和 II】
  • 网站英文联系我们毕设做购物网站系统的原因