HarmonyOS6 触摸目标 touch-target 属性使用指南

HarmonyOS6 触摸目标 touch-target 属性使用指南

文章目录

一、支持的取值方式

取值类型示例说明
TouchTarget.AUTO.touchTarget(TouchTarget.AUTO)默认值,触摸区域等于组件自身尺寸
TouchTarget.NONE.touchTarget(TouchTarget.NONE)禁用触摸,组件不响应点击事件
number.touchTarget(20)四周统一扩大指定像素值的触摸区域
Array<number>.touchTarget([0, 30, 0, 30])自定义四边扩大尺寸,格式为 [上, 右, 下, 左]

二、完整代码示例(兼容低版本)

@Entry@Component struct TouchTargetDemo {build(){Column({ space:20}){Text("触摸目标 演示").fontSize(22).fontWeight(FontWeight.Bold)// 1. 基础小按钮(默认触摸区域)Button("点我").width(40).height(40).backgroundColor(Color.Red).fontColor(Color.White).onClick(()=>console.log("点击了红色按钮"))// 高版本可添加 .touchTarget(TouchTarget.AUTO)// 2. 扩大触摸区域(四周 20px)// 高版本写法:.touchTarget(20)// 低版本替代:通过 margin 扩大点击区域Button("扩大区域").width(40).height(40).margin(20)// 模拟四周扩大 20px 触摸区域.backgroundColor(Color.Blue).fontColor(Color.White).onClick(()=>console.log("点击了蓝色扩大区域")).touchable(true)// 3. 超小按钮(实际开发最常用场景)// 高版本写法:.touchTarget(30)// 低版本替代:通过 margin 扩大点击区域Stack({ alignContent: Alignment.Center }){Text("+").fontSize(16).fontColor(Color.White)}.width(20).height(20).margin(30)// 模拟四周扩大 30px 触摸区域.backgroundColor(Color.Orange).borderRadius(10).onClick(()=>console.log("小加号点击成功")).touchable(true)Text("⚠️ 低版本 API 使用 touchable + 外边距模拟扩大触摸区").fontSize(14).fontColor(Color.Grey).margin(10)}.width('100%').padding(20).height('100%')}}

运行效果如图:


当点击图中的区域,控制台会把相应的消息打印出来


三、版本兼容说明

1. 高版本(API 15+ / HarmonyOS 5+)

直接使用 .touchTarget() 属性,语法简洁且性能更优:

// 导入依赖(API 15+ 可用)import{ TouchTarget }from'@ohos/ui';// 示例:扩大触摸区域Button("点我").width(40).height(40).touchTarget(20)// 四周扩大 20px.onClick(()=>{});

2. 低版本(API 10~12)

touch-target 属性不可用,需通过 margin + touchable(true) 模拟实现:

// 替代方案:视觉不变,点击区域扩大Button("点我").width(40).height(40).margin(20)// 外边距等价于扩大触摸区域.touchable(true)// 确保可点击.onClick(()=>{});

总结

touch-target 是提升 HarmonyOS 应用交互体验的重要属性,尤其适合优化小组件的点击灵敏度。

  • 高版本:直接使用 .touchTarget(),语法简洁、功能完整
  • 低版本:通过 margin + touchable(true) 实现等价效果,兼容所有版本

你可以根据项目的最低 API 版本选择合适的实现方式,确保代码的兼容性与易用性。


如果这篇文章对你有帮助,欢迎点赞、收藏、关注,你的支持是持续创作的动力!

Read more

从0到1打造RISC-V智能家居中控:硬件+固件+通信全链路实战

从0到1打造RISC-V智能家居中控:硬件+固件+通信全链路实战

👋 大家好,欢迎来到我的技术博客! 📚 在这里,我会分享学习笔记、实战经验与技术思考,力求用简单的方式讲清楚复杂的问题。 🌱 无论你是刚入门的新手,还是正在进阶的开发者,希望你都能有所收获! 文章目录 * 从0到1打造RISC-V智能家居中控:硬件+固件+通信全链路实战 🏠💡 * 为什么选择RISC-V?🤔 * 系统整体架构概览 🧩 * 第一步:硬件选型与电路搭建 🔌 * 主控芯片选择 * 外设连接 * 第二步:开发环境搭建 🛠️ * 安装步骤(以Ubuntu为例) * 第三步:裸机驱动开发(Bare Metal)⚡ * 示例1:DHT11温湿度读取(Bit-banging) * 示例2:BH1750光照传感器(I2C) * 第四步:引入FreeRTOS实现多任务调度 🔄 * 第五步:Wi-Fi连接与MQTT通信 ☁️📡 * 连接Wi-Fi * MQTT客户端(使用esp-mqtt库) * 第六步:BLE本地控制(无需Wi-Fi)📱

By Ne0inhk
机器人远程监控与OTA升级

机器人远程监控与OTA升级

7.4.1 远程监控的理论框架 远程监控是物联网和工业4.0时代的核心技术,其理论任务是通过网络通信手段,实现对分布式机器人设备的实时状态感知、故障预警和远程干预 。对于机器人系统而言,远程监控不仅是数据可视化的问题,更是一个涉及数据采集、传输、处理、分析和决策的闭环系统工程。 远程监控系统的三层理论架构: 感知层解决“数据从哪里来”的问题。包括机器人本体上的各类传感器(温度、振动、电流、位置)、控制器状态(CPU负载、内存使用、存储寿命)以及运行日志的采集 。感知层的理论基础是传感器技术和信号处理,其核心挑战是在不影响机器人实时控制的前提下,高效、可靠地获取状态数据。 传输层解决“数据怎么传”的问题。根据应用场景的不同,可采用Wi-Fi(室内短距)、4G/5G(广域移动)、工业以太网(固定工位)等不同通信方式 。传输层的理论基础是网络通信协议栈,其核心挑战是保证数据在复杂工业环境下的实时性、可靠性和安全性。 应用层解决“数据怎么用”

By Ne0inhk

neo4j desktop2 安装与使用

1. Neo4j Desktop 2 简介 1.1 Neo4j Desktop 2 的核心功能与优势 Neo4j Desktop 2 是 Neo4j 官方推出的图形化数据库管理工具,专为开发者和数据科学家设计。 其主要优势包括: 一体化开发环境:集成了数据库实例管理、查询编辑、数据可视化和扩展管理 本地开发友好:支持在本地机器上快速创建和测试图数据库实例 多版本管理:可同时管理多个 Neo4j 数据库版本 插件生态系统:内置插件市场,轻松安装常用扩展  项目管理:以项目为单位组织数据库、查询和配置   1.2 适用场景 图数据库开发:为应用程序开发提供本地图数据库环境 本地测试:在部署到生产环境前进行数据模型测试和查询验证 项目管理:管理多个图数据库项目,保持环境隔离 教育与学习:学习 Cypher 查询语言和图数据库概念 2.

By Ne0inhk
手把手教你配置飞书 OpenClaw 机器人,打造企业级 AI 智能助手

手把手教你配置飞书 OpenClaw 机器人,打造企业级 AI 智能助手

目标:在飞书(Feishu/Lark)中添加 OpenClaw 机器人,实现 7×24 小时 AI 智能对话与自动化办公。 OpenClaw GitHub | feishu-openclaw 桥接项目 想让你的机器人具备语音交互能力?试试 Seeed Studio 的 ReSpeaker 系列吧! 我会后续出reSpeaker XVF3800与Openclaw联动实现语音输入的教程,完全开放源码。 reSpeaker XVF3800 是一款基于 XMOS XVF3800 芯片的专业级 4 麦克风圆形阵列麦克风,即使在嘈杂的环境中也能清晰地拾取目标语音。它具备双模式、360° 远场语音拾取(最远 5 米)、自动回声消除 (AEC)、自动增益控制 (AGC)、声源定位 (DoA)、去混响、波束成形和噪声抑制等功能。

By Ne0inhk