


下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
【移動應用開發(fā)技術】Android事件分發(fā)機制的詳解
Android事件分發(fā)機制我們只考慮最重要的四個觸摸事件,即:DOWN,MOVE,UP和CANCEL。一個手勢(gesture)是一個事件列,以一個DOWN事件開始(當用戶觸摸屏幕時產(chǎn)生),后跟0個或多個MOVE事件(當用戶四處移動手指時產(chǎn)生),最后跟一個單獨的UP或CANCEL事件(當用戶手指離開屏幕或者系統(tǒng)告訴你手勢(gesture)由于其他原因結束時產(chǎn)生)。當我們說到“手勢剩余部分”時指的是手勢后續(xù)的MOVE事件和最后的UP或CANCEL事件。在這里我也不考慮多點觸摸手勢(我們只假設用一個手指)并且忽略多個MOVE事件可以被歸為一組這一實際情況。最后,我們假設文中的view都沒有注冊onTouchListener。我們將要討論的視圖層次是這樣的:最外層是一個ViewGroupA,包含一個或多個子view(children),其中一個子view是ViewGroupB,ViewGroupB中又包含一個或多個子view,其中一個子view是ViewC,C不是一個ViewGroup。這里我們忽略同層級view之間可能的交叉疊加。
假設用戶首先觸摸到的屏幕上的點是C上的某個點,該點被標記為觸摸點(touchpoint),DOWN事件就在該點產(chǎn)生。然后用戶移動手指并最后離開屏幕,此過程中手指是否離開C的區(qū)域無關緊要,關鍵是手勢(gesture)是從哪里開始的。默認情況假設上面的A,B,C都沒有覆寫默認的事件傳播行為,那么下面就是事件傳播的過程:由于沒有view關心這個手勢(gesture),它們將不再會從“手勢剩余部分”中接收任何事件。處理事件現(xiàn)在,讓我們假設C實際上是關心這個手勢(gesture)的,原因可能是C被設置成可點擊的(clickable)或者你覆寫了C的onTouchEvent方法。個人理解:從這里可以看出,各個View的onTouchEvent方法對DOWN事件的處理,代表了該View對以此DOWN開始的整個手勢(gesture)的處理意愿,返回true代表愿意處理該gesture,返回false代表不愿意處理該gesture。onInterceptTouchEvent現(xiàn)在我們將討論一個新的方法:onInterceptTouchEvent,它只存在于ViewGroup中,普通的View中沒有這個方法。在任何一個view的onTouchEvent被調(diào)用之前,它的父輩們(ancestors)將先獲得攔截這個事件的一次機會,換句話說,它們可以竊取該事件。在剛才的“處理事件”部分中,我們遺漏了這一過程,現(xiàn)在,讓我們把它加上:個人理解:感謝@編程世界的孩子的提醒,由此可見,DOWN事件的處理實際上經(jīng)歷了一下一上兩個過程,下是指A->B的onInterceptTouchEvent,上是指C->B->A的onTouchEvent,當然,任意一步的方法中返回true,都能阻止它繼續(xù)傳播。攔截事件現(xiàn)在,讓我們更進一步,假設B沒有攔截DOWN事件,但它攔截了接下來的MOVE事件。原因可能是B是一個scrollingview。當用戶僅僅在它的區(qū)域內(nèi)點擊(tap)時,被點擊到的元素應當能處理該點擊事件。但是當用戶手指移動了一定的距離后,就不能再視該手勢(gesture)為點擊了——很明顯,用戶是想scroll。這就是為什么B要接管該手勢(gesture)。
下面是事件被處理的順序:下面的一些小事情可能會令你感到吃驚:從此開始,你可以更進一步。比如對mouthful-method(實在不知道該怎么翻譯啦?。﹔equestDisallowInterceptTouchEvent,C可以用該方法阻止B竊取事件。如果你想更加瘋狂一點,你可以在你自己的ViewGroup中直接覆寫dispatchTouchEvent方法,并對
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 磨床精度維護合同
- 結算審計協(xié)議
- 2025年自然災害防范安全教育培訓考試題庫全解與高分攻略解析
- 2025至2030年中國糖果、巧克力產(chǎn)業(yè)發(fā)展前瞻及投資策略咨詢報告
- 2025年電子商務師職業(yè)資格考試題庫:電子商務內(nèi)容營銷策略試題
- 2025年高壓電工技師高級操作技能模擬考試題庫試題及詳答案詳詳詳詳詳詳詳解析
- 2025年護士執(zhí)業(yè)資格考試題庫(兒科護理學專項)兒科護理學護理護理計劃試題
- 2025年大學統(tǒng)計學期末考試題庫:案例分析題解析與復習要點
- 2025至2030年三支點電動叉車項目投資價值分析報告
- 浙江藍特光學股份有限公司年產(chǎn)600萬件高精度光學鏡頭、200萬件高精度攝像頭模組建設項目環(huán)評報告
- 2025年鄭州軌道工程職業(yè)學院單招職業(yè)適應性測試題庫必考題
- 中和人民共和國民法典全冊
- 2025浙江溫州市公用事業(yè)發(fā)展集團有限公司招聘54人(第一批)筆試參考題庫附帶答案詳解
- 2025華陽新材料科技集團有限公司招聘(500人)筆試參考題庫附帶答案詳解
- 2025春季眉山市國有資本投資運營集團有限公司集中招聘50人筆試參考題庫附帶答案詳解
- 2025年湖北省中考道德與法治模擬卷(1)(含答案)
- 2024年陜西師范大學輔導員與心理健康教育教師招聘考試真題
- 2025年浙江省溫州市中考一模數(shù)學模擬試題(含答案)
- 國有企業(yè)問責管理制度及實施細則草稿
- 《卵石動物造型》名師課件
- 國網(wǎng)公司安全責任清單
評論
0/150
提交評論