觸摸測(cè)試控制
設(shè)置組件的觸摸測(cè)試類型。ArkUI開(kāi)發(fā)框架在處理觸屏事件時(shí),會(huì)在觸屏事件觸發(fā)前,進(jìn)行按壓點(diǎn)和組件區(qū)域的觸摸測(cè)試來(lái)收集需要響應(yīng)觸屏事件的組件,然后基于觸摸測(cè)試結(jié)果分發(fā)相應(yīng)的觸屏事件。hitTestBehavior屬性可以設(shè)置不同的觸摸測(cè)試響應(yīng)模式,影響組件的觸摸測(cè)試收集結(jié)果,最終影響后續(xù)的觸屏事件分發(fā),具體影響參考[HitTestMode]枚舉說(shuō)明。
說(shuō)明:
- 從API Version 9開(kāi)始支持。后續(xù)版本如有新增內(nèi)容,則采用上角標(biāo)單獨(dú)標(biāo)記該內(nèi)容的起始版本。
- 當(dāng)Stack組件中有多個(gè)節(jié)點(diǎn)觸摸區(qū)域重疊時(shí),如兩個(gè)節(jié)點(diǎn),默認(rèn)只會(huì)對(duì)顯示在最上層的節(jié)點(diǎn)做觸摸測(cè)試,若需要顯示在下層的節(jié)點(diǎn)觸發(fā)觸摸測(cè)試,請(qǐng)給顯示在上層的節(jié)點(diǎn)設(shè)置hitTestBehavior為HitTestMode.Transparent。
屬性
名稱 | 參數(shù)類型 | 描述 |
---|---|---|
hitTestBehavior | [HitTestMode] | 設(shè)置當(dāng)前組件的觸摸測(cè)試類型。 默認(rèn)值: HitTestMode.Default |
HitTestMode枚舉說(shuō)明
名稱 | 描述 |
---|---|
Default | 默認(rèn)觸摸測(cè)試效果,自身和子節(jié)點(diǎn)都響應(yīng)觸摸測(cè)試,但會(huì)阻塞兄弟節(jié)點(diǎn)的觸摸測(cè)試。 |
Block | 自身響應(yīng)觸摸測(cè)試,阻塞子節(jié)點(diǎn)和兄弟節(jié)點(diǎn)的觸摸測(cè)試。 |
Transparent | 自身和子節(jié)點(diǎn)都響應(yīng)觸摸測(cè)試,不會(huì)阻塞兄弟節(jié)點(diǎn)的觸摸測(cè)試。 |
None | 自身不響應(yīng)觸摸測(cè)試,不會(huì)阻塞子節(jié)點(diǎn)和兄弟節(jié)點(diǎn)的觸摸測(cè)試。 |
示例
Text組件設(shè)置hitTestBehavior為HitTestMode.Transparent,不會(huì)阻塞內(nèi)層Stack的觸摸測(cè)試,因此Text和內(nèi)層Stack的onTouch事件都會(huì)觸發(fā)。
內(nèi)層Stack設(shè)置hitTestBehavior為HitTestMode.Block,會(huì)阻塞子節(jié)點(diǎn)和外層Button進(jìn)行觸摸測(cè)試,因此內(nèi)層Button和外層Button組件不會(huì)響應(yīng)onTouch事件。
// xxx.ets
@Entry
@Component
struct HitTestBehaviorExample {
build() {
// outer stack
Stack() {
Button('outer button')
.onTouch((event) = > {
console.info('outer button touched type: ' + event.type)
})
// inner stack
Stack() {
Button('inner button')
.onTouch((event) = > {
console.info('inner button touched type: ' + event.type)
})
}
.width("100%").height("100%")
.hitTestBehavior(HitTestMode.Block)
.onTouch((event) = > {
console.info('stack touched type: ' + event.type)
})
Text('Transparent')
.hitTestBehavior(HitTestMode.Transparent)
.width("100%").height("100%")
.onTouch((event) = > {
console.info('text touched type: ' + event.type)
})
}.width(300).height(300)
}
}
審核編輯 黃宇
-
測(cè)試
+關(guān)注
關(guān)注
8文章
5900瀏覽量
130304 -
觸摸
+關(guān)注
關(guān)注
8文章
200瀏覽量
65483 -
組件
+關(guān)注
關(guān)注
1文章
541瀏覽量
18803 -
交互控制
+關(guān)注
關(guān)注
0文章
6瀏覽量
7123
發(fā)布評(píng)論請(qǐng)先 登錄
HarmonyOS/OpenHarmony應(yīng)用開(kāi)發(fā)-ArkTS的聲明式開(kāi)發(fā)范式
升特發(fā)布支持多點(diǎn)觸摸的電阻式觸摸屏控制器SX8674
鴻蒙開(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)論