今天遇到一個(gè)問(wèn)題,自定義列表的行吨述,點(diǎn)擊事件用GestureDetector包裹的Container岩睁,加了一些其他的控件,但是當(dāng)我點(diǎn)擊條目時(shí)锐极,發(fā)現(xiàn)只有點(diǎn)擊文字或者圖片的區(qū)域才能響應(yīng)點(diǎn)擊事件笙僚,其他區(qū)域捕捉不到onTap。
查了一下發(fā)現(xiàn)GestureDetector有個(gè)behavior屬性灵再,點(diǎn)進(jìn)去肋层,看一下,包括這三種模式
翻譯一下就是:
當(dāng)behavior選擇deferToChild時(shí)翎迁,只有當(dāng)前容器中的child被點(diǎn)擊時(shí)才會(huì)響應(yīng)點(diǎn)擊事件栋猖;
當(dāng)behavior選擇opaque時(shí),點(diǎn)擊整個(gè)區(qū)域都會(huì)響應(yīng)點(diǎn)擊事件汪榔,但是點(diǎn)擊事件不可穿透向下傳遞蒲拉,注釋翻譯:阻止視覺(jué)上位于其后方的目標(biāo)接收事件,所以我需要的這種效果直接將behavior設(shè)置為HitTestBehavior.opaque就可以了痴腌;
當(dāng)behavior選擇translucent時(shí)雌团,同樣是點(diǎn)擊整個(gè)區(qū)域都會(huì)響應(yīng)點(diǎn)擊事件,和opaque的區(qū)別是點(diǎn)擊事件是否可以向下傳遞士聪,注釋翻譯:半透明目標(biāo)既可以在其范圍內(nèi)接受事件锦援,也可以允許視覺(jué)上位于其后方的目標(biāo)接收事件。
簡(jiǎn)單來(lái)說(shuō)這就是三種模式的區(qū)別了剥悟,具體使用場(chǎng)景還需要繼續(xù)探索啦~