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

Flutter for OpenHarmony:web_socket 纯 Dart 标准 WebSocket 客户端(跨平台兼容性之王) 深度解析与鸿蒙

Flutter for OpenHarmony:web_socket 纯 Dart 标准 WebSocket 客户端(跨平台兼容性之王) 深度解析与鸿蒙

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net 前言 虽然 dart:io 提供了 WebSocket 类,dart:html 也提供了 WebSocket 类,但这种“分裂”的 API 设计让编写跨平台(同时支持 Mobile/Web/Desktop)的代码变得异常痛苦。你需要使用条件导入 (if (dart.library.io) ...) 来分别处理。 web_socket 库就是为了解决这个问题而诞生的。它提供了一个统一的、平台无关的WebSocket 接口。 无论你的代码运行在 Android、iOS、Web 还是 OpenHarmony 上,它都会自动选择最底层的实现(在鸿蒙上通常是 dart:io)

By Ne0inhk

ESP8266 Web配网+MQTT+STM32串口上云+免AT指令

本文详细讲解 ESP8266/ESP12F Web 配网、MQTT 通信、STM32/Arduino 串口透传一体化实现方案WiFi强制入户,连接自动打开网页配置,核心亮点是单片机免 ESP8266 AT 指令,串口直接上云,通过串口向 ESP8266 发送数据即可自动上传至 MQTT 服务器,固件开源可直接用于学习调试。 固件下载: 通过网盘分享的文件:mqtt_usart_wifi.ino.bin 链接: https://pan.baidu.com/s/1mZt5diatyYvnSZ-N1eF75w?pwd=e8we 提取码: e8we 免AT指令全网首发!数据直接上传MQTT、秒下发指令,无需复杂配置!下载固件即可使用 一、项目背景与开发初衷         在物联网设备开发过程中,配网和远程通信是两个核心痛点:传统的

By Ne0inhk
在 Cursor 中打造你的专属前端“AI 助手”:Agent Skills 实战指南 什么是 Agent Skills?

在 Cursor 中打造你的专属前端“AI 助手”:Agent Skills 实战指南 什么是 Agent Skills?

文章目录 * 一、什么是 Agent Skills? * 二、使用步骤 * 1.下载官方提供的agent-skills文档 * 2.cursor中使用 * 三、如何设计自己的skills * 四、实战:打造一个“生成标准 React 组件”的 Skill * 第一步:创建目录 * 第二步:编写 SKILL.md * 总结:为什么你应该开始用 Skills? 一、什么是 Agent Skills? 简单来说,Agent Skills 是一种标准化的方式,用来封装特定任务的知识和工作流。 如果说 MCP (Model Context Protocol) 是给 AI 装上了“手”(让它能连接数据库、Github)

By Ne0inhk
【2025最新】基于SpringBoot+Vue的web网上摄影工作室开发与实现pf管理系统源码+MyBatis+MySQL

【2025最新】基于SpringBoot+Vue的web网上摄影工作室开发与实现pf管理系统源码+MyBatis+MySQL

摘要 随着互联网技术的快速发展和数字化生活的普及,摄影行业逐渐从传统的线下模式转向线上平台。网上摄影工作室作为一种新兴的服务模式,为用户提供了更加便捷的摄影服务选择,同时也为摄影师和摄影爱好者提供了展示和交易的平台。然而,目前市场上的摄影服务平台功能单一,用户体验不佳,缺乏个性化的服务和管理功能。因此,开发一个功能完善、操作便捷的网上摄影工作室管理系统具有重要的现实意义。该系统旨在整合摄影资源,优化服务流程,提升用户体验,同时为摄影师和用户搭建高效的沟通桥梁。关键词:网上摄影工作室、SpringBoot、Vue、管理系统、数字化服务。 本系统采用前后端分离的架构设计,前端使用Vue.js框架实现动态交互和响应式布局,后端基于SpringBoot框架搭建高效稳定的服务层,数据库采用MySQL进行数据存储,并通过MyBatis实现数据持久化操作。系统主要功能包括用户管理、摄影作品展示、在线预约、订单管理、评论互动等模块。用户可以通过系统浏览摄影师的作品集,在线预约拍摄服务,管理个人订单;摄影师则可以上传作品、管理预约订单、与用户互动。系统还支持多角色权限管理,确保数据安全和操作合规性。

By Ne0inhk