觸摸事件
當(dāng)手指在組件上按下、滑動(dòng)、抬起時(shí)觸發(fā)。
說(shuō)明:
開(kāi)發(fā)前請(qǐng)熟悉鴻蒙開(kāi)發(fā)指導(dǎo)文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]
從API Version 7開(kāi)始支持。后續(xù)版本如有新增內(nèi)容,則采用上角標(biāo)單獨(dú)標(biāo)記該內(nèi)容的起始版本。
事件
名稱(chēng) | 是否冒泡 | 功能描述 |
---|---|---|
onTouch(event: (event?: TouchEvent) => void) | 是 | 手指觸摸動(dòng)作觸發(fā)該回調(diào),event返回值見(jiàn)[TouchEvent]介紹。 |
TouchEvent對(duì)象說(shuō)明
名稱(chēng) | 類(lèi)型 | 描述 |
---|---|---|
type | [TouchType] | 觸摸事件的類(lèi)型。 |
touches | Array<[TouchObject]> | 全部手指信息。 |
changedTouches | Array<[TouchObject]> | 當(dāng)前發(fā)生變化的手指信息。 |
stopPropagation | () => void | 阻塞事件冒泡。 |
timestamp8+ | number | 事件時(shí)間戳,觸發(fā)事件時(shí)距離系統(tǒng)啟動(dòng)的時(shí)間間隔。 例如,當(dāng)系統(tǒng)啟動(dòng)時(shí)間為2023/10/12 11:33, 在2023/10/12 11:34時(shí)觸發(fā)觸摸事件,時(shí)間戳返回的值為60,000,000,000ns。 單位:納秒 |
target8+ | [EventTarget] | 觸發(fā)事件的元素對(duì)象顯示區(qū)域。 |
source8+ | [SourceType] | 事件輸入設(shè)備。 |
getHistoricalPoints10+ | Array<[HistoricalPoint]> | 獲取當(dāng)前幀所有的歷史點(diǎn)。不同設(shè)備每幀的觸摸事件頻率不同,當(dāng)前幀所有的觸摸事件被稱(chēng)為歷史點(diǎn)。 |
TouchObject對(duì)象說(shuō)明
名稱(chēng) | 類(lèi)型 | 描述 |
---|---|---|
type | [TouchType] | 觸摸事件的類(lèi)型。 |
id | number | 手指唯一標(biāo)識(shí)符。 |
x | number | 觸摸點(diǎn)相對(duì)于被觸摸元素左上角的X坐標(biāo)。 |
y | number | 觸摸點(diǎn)相對(duì)于被觸摸元素左上角的Y坐標(biāo)。 |
windowX10+ | number | 觸摸點(diǎn)相對(duì)于應(yīng)用窗口左上角的X坐標(biāo)。 |
windowY10+ | number | 觸摸點(diǎn)相對(duì)于應(yīng)用窗口左上角的Y坐標(biāo)。 |
displayX10+ | number | 觸摸點(diǎn)相對(duì)于應(yīng)用屏幕左上角的X坐標(biāo)。 |
displayY10+ | number | 觸摸點(diǎn)相對(duì)于應(yīng)用屏幕左上角的Y坐標(biāo)。 |
HistoricalPoint10+對(duì)象說(shuō)明
名稱(chēng) | 類(lèi)型 | 描述HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿 |
---|---|---|
touchObject | [TouchObject] | 歷史點(diǎn)對(duì)應(yīng)觸摸事件的基礎(chǔ)信息。 |
size | number | 歷史點(diǎn)對(duì)應(yīng)觸摸事件的手指與屏幕的觸摸區(qū)域大小。 默認(rèn)值:0 |
force | number | 歷史點(diǎn)對(duì)應(yīng)觸摸事件的壓力大小。 默認(rèn)值:0 取值范圍:[0,1],壓力越大值越大。 此接口根據(jù)硬件設(shè)備不同,支持情況不同。當(dāng)前只支持Tablet。 |
timestamp | number | 歷史點(diǎn)對(duì)應(yīng)觸摸事件的時(shí)間戳。觸發(fā)事件時(shí)距離系統(tǒng)啟動(dòng)的時(shí)間間隔。 單位:毫秒 |
示例
// xxx.ets
@Entry
@Component
struct TouchExample {
@State text: string = ''
@State eventType: string = ''
build() {
Column() {
Button('Touch').height(40).width(100)
.onTouch((event?: TouchEvent) = > {
if(event){
if (event.type === TouchType.Down) {
this.eventType = 'Down'
}
if (event.type === TouchType.Up) {
this.eventType = 'Up'
}
if (event.type === TouchType.Move) {
this.eventType = 'Move'
}
this.text = 'TouchType:' + this.eventType + 'nDistance between touch point and touch element:nx: '
+ event.touches[0].x + 'n' + 'y: ' + event.touches[0].y + 'nComponent globalPos:('
+ event.target.area.globalPosition.x + ',' + event.target.area.globalPosition.y + ')nwidth:'
+ event.target.area.width + 'nheight:' + event.target.area.height
}
})
Button('Touch').height(50).width(200).margin(20)
.onTouch((event?: TouchEvent) = > {
if(event){
if (event.type === TouchType.Down) {
this.eventType = 'Down'
}
if (event.type === TouchType.Up) {
this.eventType = 'Up'
}
if (event.type === TouchType.Move) {
this.eventType = 'Move'
}
this.text = 'TouchType:' + this.eventType + 'nDistance between touch point and touch element:nx: '
+ event.touches[0].x + 'n' + 'y: ' + event.touches[0].y + 'nComponent globalPos:('
+ event.target.area.globalPosition.x + ',' + event.target.area.globalPosition.y + ')nwidth:'
+ event.target.area.width + 'nheight:' + event.target.area.height
}
})
Text(this.text)
}.width('100%').padding(30)
}
}
審核編輯 黃宇
-
鴻蒙
+關(guān)注
關(guān)注
59文章
2537瀏覽量
43810
發(fā)布評(píng)論請(qǐng)先 登錄
鴻蒙ArkTS的起源和簡(jiǎn)介
HarmonyOS/OpenHarmony應(yīng)用開(kāi)發(fā)-ArkTS的聲明式開(kāi)發(fā)范式
鴻蒙開(kāi)發(fā)之ArkTS基礎(chǔ)知識(shí)

鴻蒙ArkTS聲明式開(kāi)發(fā):跨平臺(tái)支持列表【按鍵事件】

鴻蒙ArkTS聲明式開(kāi)發(fā):跨平臺(tái)支持列表【焦點(diǎn)事件】

鴻蒙ArkTS聲明式開(kāi)發(fā):跨平臺(tái)支持列表【顯隱控制】 通用屬性

鴻蒙ArkTS聲明式開(kāi)發(fā):跨平臺(tái)支持列表【禁用控制】 通用屬性

鴻蒙ArkTS聲明式開(kāi)發(fā):跨平臺(tái)支持列表【形狀裁剪】 通用屬性

鴻蒙ArkTS聲明式開(kāi)發(fā):跨平臺(tái)支持列表【菜單控制】 通用屬性

鴻蒙ArkTS聲明式開(kāi)發(fā):跨平臺(tái)支持列表【多態(tài)樣式】 通用屬性

評(píng)論