Android 点击无效问题总结
生活随笔
收集整理的這篇文章主要介紹了
Android 点击无效问题总结
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
概述
近期碰到比較坑的點(diǎn)擊無效的問題,嘗試了多種解決方案,最終解決。
于是,趁熱打鐵,做個問題與解決方案的總結(jié),期望能對你有所幫助。
點(diǎn)擊無效的原因
排查與解決
View沒有設(shè)置點(diǎn)擊事件
打斷點(diǎn)或打log,確認(rèn)設(shè)置點(diǎn)擊事件的代碼有執(zhí)行到。
View被其他View遮蓋
可以通過Android studio的工具“Layout Inspector”來協(xié)助排查,確認(rèn)沒有被其他View遮蓋。
父View攔截了事件
在父View的dispatchTouchEvent中打斷點(diǎn)或者log,確認(rèn)事件有傳遞到父View。
如果確認(rèn)父View收到了事件,而子View沒有收到,那么大概就是這個原因。
被其他window遮蓋
筆者碰到的就是這種情況:
View的頁面啟動了一個透明的activity,這個activity雖然是透明的,但是也有自己的window,于是攔截了所有觸摸事件。
解決方案有兩種:
- 給這個遮蓋的window添加flag:WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE
添加這個flag后,這個window不會處理任何觸摸事件,直接會往下傳遞。 - 查看widnow遮蓋的場景是否符合業(yè)務(wù)場景,如果不符合,及早把它關(guān)閉,不要影響其他頁面的觸摸事件。
總結(jié)
以上是生活随笔為你收集整理的Android 点击无效问题总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 适合用于听写的新型语音识别技术 可将单词
- 下一篇: 原创:中央军司令自己要跑,先后布置3个杂