觸摸事件
當(dāng)手指在組件上按下、滑動、抬起時觸發(fā)。
說明:
開發(fā)前請熟悉鴻蒙開發(fā)指導(dǎo)文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]
從API Version 7開始支持。后續(xù)版本如有新增內(nèi)容,則采用上角標(biāo)單獨(dú)標(biāo)記該內(nèi)容的起始版本。
事件
名稱 | 是否冒泡 | 功能描述 |
---|---|---|
onTouch(event: (event?: TouchEvent) => void) | 是 | 手指觸摸動作觸發(fā)該回調(diào),event返回值見[TouchEvent]介紹。 |
TouchEvent對象說明
名稱 | 類型 | 描述 |
---|---|---|
type | [TouchType] | 觸摸事件的類型。 |
touches | Array<[TouchObject]> | 全部手指信息。 |
changedTouches | Array<[TouchObject]> | 當(dāng)前發(fā)生變化的手指信息。 |
stopPropagation | () => void | 阻塞事件冒泡。 |
timestamp8+ | number | 事件時間戳,觸發(fā)事件時距離系統(tǒng)啟動的時間間隔。 例如,當(dāng)系統(tǒng)啟動時間為2023/10/12 11:33, 在2023/10/12 11:34時觸發(fā)觸摸事件,時間戳返回的值為60,000,000,000ns。 單位:納秒 |
target8+ | [EventTarget] | 觸發(fā)事件的元素對象顯示區(qū)域。 |
source8+ | [SourceType] | 事件輸入設(shè)備。 |
getHistoricalPoints10+ | Array<[HistoricalPoint]> | 獲取當(dāng)前幀所有的歷史點(diǎn)。不同設(shè)備每幀的觸摸事件頻率不同,當(dāng)前幀所有的觸摸事件被稱為歷史點(diǎn)。 |
TouchObject對象說明
名稱 | 類型 | 描述 |
---|---|---|
type | [TouchType] | 觸摸事件的類型。 |
id | number | 手指唯一標(biāo)識符。 |
x | number | 觸摸點(diǎn)相對于被觸摸元素左上角的X坐標(biāo)。 |
y | number | 觸摸點(diǎn)相對于被觸摸元素左上角的Y坐標(biāo)。 |
windowX10+ | number | 觸摸點(diǎn)相對于應(yīng)用窗口左上角的X坐標(biāo)。 |
windowY10+ | number | 觸摸點(diǎn)相對于應(yīng)用窗口左上角的Y坐標(biāo)。 |
displayX10+ | number | 觸摸點(diǎn)相對于應(yīng)用屏幕左上角的X坐標(biāo)。 |
displayY10+ | number | 觸摸點(diǎn)相對于應(yīng)用屏幕左上角的Y坐標(biāo)。 |
HistoricalPoint10+對象說明
名稱 | 類型 | 描述HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿 |
---|---|---|
touchObject | [TouchObject] | 歷史點(diǎn)對應(yīng)觸摸事件的基礎(chǔ)信息。 |
size | number | 歷史點(diǎn)對應(yīng)觸摸事件的手指與屏幕的觸摸區(qū)域大小。 默認(rèn)值:0 |
force | number | 歷史點(diǎn)對應(yīng)觸摸事件的壓力大小。 默認(rèn)值:0 取值范圍:[0,1],壓力越大值越大。 此接口根據(jù)硬件設(shè)備不同,支持情況不同。當(dāng)前只支持Tablet。 |
timestamp | number | 歷史點(diǎn)對應(yīng)觸摸事件的時間戳。觸發(fā)事件時距離系統(tǒng)啟動的時間間隔。 單位:毫秒 |
示例
// 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)
}
}
審核編輯 黃宇
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
鴻蒙
+關(guān)注
關(guān)注
57文章
2352瀏覽量
42859
發(fā)布評論請先 登錄
相關(guān)推薦
鴻蒙ArkTS的起源和簡介
新的聲明式開發(fā)范式,基于Skia的自繪制引擎構(gòu)建可跨平臺的獨(dú)立的渲染能力。這是一種較為創(chuàng)新的方案,不過也有幾點(diǎn)不足:
Dart語言生態(tài)。盡管
發(fā)表于 01-16 16:23
HarmonyOS/OpenHarmony應(yīng)用開發(fā)-ArkTS的聲明式開發(fā)范式
基于ArkTS的聲明式開發(fā)范式的方舟開發(fā)框架是一套開發(fā)極簡、高性能、
發(fā)表于 01-17 15:09
鴻蒙開發(fā)之ArkTS基礎(chǔ)知識
一、ArkTS簡介 ArkTS是HarmonyOS優(yōu)選的主力應(yīng)用開發(fā)語言。它在TypeScript(簡稱TS)的基礎(chǔ)上,匹配了鴻蒙的ArkUI框架,擴(kuò)展了
鴻蒙ArkTS聲明式開發(fā):跨平臺支持列表【按鍵事件】
按鍵事件指組件與鍵盤、遙控器等按鍵設(shè)備交互時觸發(fā)的事件,適用于所有可獲焦組件,例如Button。對于Text,Image等默認(rèn)不可獲焦的組件,可以設(shè)置focusable屬性為true后使用按鍵事件。
鴻蒙ArkTS聲明式開發(fā):跨平臺支持列表【焦點(diǎn)事件】
焦點(diǎn)事件指頁面焦點(diǎn)在可獲焦組件間移動時觸發(fā)的事件,組件可使用焦點(diǎn)事件來處理相關(guān)邏輯。
鴻蒙ArkTS聲明式開發(fā):跨平臺支持列表【顯隱控制】 通用屬性
控制當(dāng)前組件顯示或隱藏。注意,即使組件處于隱藏狀態(tài),在頁面刷新時仍存在重新創(chuàng)建過程,因此當(dāng)對性能有嚴(yán)格要求時建議使用[條件渲染]代替。 默認(rèn)值:Visibility.Visible 從API version 9開始,該接口支持在ArkTS卡片中使用。
鴻蒙ArkTS聲明式開發(fā):跨平臺支持列表【禁用控制】 通用屬性
組件是否可交互,可交互狀態(tài)下響應(yīng)[點(diǎn)擊事件]、[觸摸事件]、[拖拽事件]、[按鍵事件]、[焦點(diǎn)事件]和[鼠標(biāo)事件]。
鴻蒙ArkTS聲明式開發(fā):跨平臺支持列表【形狀裁剪】 通用屬性
參數(shù)為相應(yīng)類型的組件,按指定的形狀對當(dāng)前組件進(jìn)行裁剪;參數(shù)為boolean類型時,設(shè)置是否按照父容器邊緣輪廓進(jìn)行裁剪。 默認(rèn)值:false 從API version 9開始,該接口支持在ArkTS卡片中使用。
鴻蒙ArkTS聲明式開發(fā):跨平臺支持列表【分布式遷移標(biāo)識】 通用屬性
組件的分布式遷移標(biāo)識,指明了該組件在分布式遷移場景下可以將特定狀態(tài)恢復(fù)到對端設(shè)備。
鴻蒙ArkTS聲明式開發(fā):跨平臺支持列表【觸摸測試控制】觸摸交互控制
設(shè)置組件的觸摸測試類型。ArkUI開發(fā)框架在處理觸屏事件時,會在觸屏事件觸發(fā)前,進(jìn)行按壓點(diǎn)和組件區(qū)域的觸摸測試來收集需要響應(yīng)觸屏事件的組件,然后基于觸摸測試結(jié)果分發(fā)相應(yīng)的觸屏
評論