W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
設(shè)置組件的觸摸測(cè)試類型。ArkUI開發(fā)框架在處理觸屏事件時(shí),會(huì)在觸屏事件觸發(fā)前,進(jìn)行按壓點(diǎn)和組件區(qū)域的觸摸測(cè)試來收集需要響應(yīng)觸屏事件的組件,然后基于觸摸測(cè)試結(jié)果分發(fā)相應(yīng)的觸屏事件。hitTestBehavior屬性可以設(shè)置不同的觸摸測(cè)試響應(yīng)模式,影響組件的觸摸測(cè)試收集結(jié)果,最終影響后續(xù)的觸屏事件分發(fā),具體影響參考HitTestMode枚舉說明。
名稱 | 描述 |
---|---|
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)
- }
- }
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: