觸摸測試控制
設(shè)置組件的觸摸測試類型。ArkUI開發(fā)框架在處理觸屏事件時,會在觸屏事件觸發(fā)前,進(jìn)行按壓點和組件區(qū)域的觸摸測試來收集需要響應(yīng)觸屏事件的組件,然后基于觸摸測試結(jié)果分發(fā)相應(yīng)的觸屏事件。hitTestBehavior屬性可以設(shè)置不同的觸摸測試響應(yīng)模式,影響組件的觸摸測試收集結(jié)果,最終影響后續(xù)的觸屏事件分發(fā),具體影響參考[HitTestMode]枚舉說明。
說明:
屬性
名稱 | 參數(shù)類型 | 描述 |
---|---|---|
hitTestBehavior | [HitTestMode] | 設(shè)置當(dāng)前組件的觸摸測試類型。 默認(rèn)值: HitTestMode.Default |
HitTestMode枚舉說明
名稱 | 描述 |
---|---|
Default | 默認(rèn)觸摸測試效果,自身和子節(jié)點都響應(yīng)觸摸測試,但會阻塞兄弟節(jié)點的觸摸測試。 |
Block | 自身響應(yīng)觸摸測試,阻塞子節(jié)點和兄弟節(jié)點的觸摸測試。 |
Transparent | 自身和子節(jié)點都響應(yīng)觸摸測試,不會阻塞兄弟節(jié)點的觸摸測試。 |
None | 自身不響應(yīng)觸摸測試,不會阻塞子節(jié)點和兄弟節(jié)點的觸摸測試。 |
示例
Text組件設(shè)置hitTestBehavior為HitTestMode.Transparent,不會阻塞內(nèi)層Stack的觸摸測試,因此Text和內(nèi)層Stack的onTouch事件都會觸發(fā)。
內(nèi)層Stack設(shè)置hitTestBehavior為HitTestMode.Block,會阻塞子節(jié)點和外層Button進(jìn)行觸摸測試,因此內(nèi)層Button和外層Button組件不會響應(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)
}
}
審核編輯 黃宇
-
測試
+關(guān)注
關(guān)注
8文章
5105瀏覽量
126341 -
觸摸
+關(guān)注
關(guān)注
7文章
198瀏覽量
64121 -
組件
+關(guān)注
關(guān)注
1文章
503瀏覽量
17786 -
交互控制
+關(guān)注
關(guān)注
0文章
6瀏覽量
6990
發(fā)布評論請先 登錄
相關(guān)推薦
評論