W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
通過給各個(gè)組件綁定不同的手勢(shì)事件,并設(shè)計(jì)事件的響應(yīng)方式,當(dāng)手勢(shì)識(shí)別成功時(shí),ArkUI框架將通過事件回調(diào)通知組件手勢(shì)識(shí)別的結(jié)果。
- .gesture(gesture: GestureType, mask?: GestureMask)
gesture為通用的一種手勢(shì)綁定方法,可以將手勢(shì)綁定到對(duì)應(yīng)的組件上。
例如,可以將點(diǎn)擊手勢(shì)TapGesture通過gesture手勢(shì)綁定方法綁定到Text組件上。
- // xxx.ets
- @Entry
- @Component
- struct Index {
- build() {
- Column() {
- Text('Gesture').fontSize(28)
- // 采用gesture手勢(shì)綁定方法綁定TapGesture
- .gesture(
- TapGesture()
- .onAction(() => {
- console.info('TapGesture is onAction');
- }))
- }
- .height(200)
- .width(250)
- }
- }
- .priorityGesture(gesture: GestureType, mask?: GestureMask)。
priorityGesture是帶優(yōu)先級(jí)的手勢(shì)綁定方法,可以在組件上綁定優(yōu)先識(shí)別的手勢(shì)。
在默認(rèn)情況下,當(dāng)父組件和子組件使用gesture綁定同類型的手勢(shì)時(shí),子組件優(yōu)先識(shí)別通過gesture綁定的手勢(shì)。當(dāng)父組件使用priorityGesture綁定與子組件同類型的手勢(shì)時(shí),父組件優(yōu)先識(shí)別通過priorityGesture綁定的手勢(shì)。
例如,當(dāng)父組件Column和子組件Text同時(shí)綁定TapGesture手勢(shì)時(shí),父組件以帶優(yōu)先級(jí)手勢(shì)priorityGesture的形式進(jìn)行綁定時(shí),優(yōu)先響應(yīng)父組件綁定的TapGesture。
- // xxx.ets
- @Entry
- @Component
- struct Index {
- build() {
- Column() {
- Text('Gesture').fontSize(28)
- .gesture(
- TapGesture()
- .onAction(() => {
- console.info('Text TapGesture is onAction');
- }))
- }
- .height(200)
- .width(250)
- // 設(shè)置為priorityGesture時(shí),點(diǎn)擊文本區(qū)域會(huì)忽略Text組件的TapGesture手勢(shì)事件,優(yōu)先響應(yīng)父組件Column的TapGesture手勢(shì)事件
- .priorityGesture(
- TapGesture()
- .onAction(() => {
- console.info('Column TapGesture is onAction');
- }), GestureMask.IgnoreInternal)
- }
- }
- .parallelGesture(gesture: GestureType, mask?: GestureMask)
parallelGesture是并行的手勢(shì)綁定方法,可以在父子組件上綁定可以同時(shí)響應(yīng)的相同手勢(shì)。
在默認(rèn)情況下,手勢(shì)事件為非冒泡事件,當(dāng)父子組件綁定相同的手勢(shì)時(shí),父子組件綁定的手勢(shì)事件會(huì)發(fā)生競(jìng)爭(zhēng),最多只有一個(gè)組件的手勢(shì)事件能夠獲得響應(yīng)。而當(dāng)父組件綁定了并行手勢(shì)parallelGesture時(shí),父子組件相同的手勢(shì)事件都可以觸發(fā),實(shí)現(xiàn)類似冒泡效果。
- // xxx.ets
- @Entry
- @Component
- struct Index {
- build() {
- Column() {
- Text('Gesture').fontSize(28)
- .gesture(
- TapGesture()
- .onAction(() => {
- console.info('Text TapGesture is onAction');
- }))
- }
- .height(200)
- .width(250)
- // 設(shè)置為parallelGesture時(shí),點(diǎn)擊文本區(qū)域會(huì)同時(shí)響應(yīng)父組件Column和子組件Text的TapGesture手勢(shì)事件
- .parallelGesture(
- TapGesture()
- .onAction(() => {
- console.info('Column TapGesture is onAction');
- }), GestureMask.IgnoreInternal)
- }
- }
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)系方式:
更多建議: