Android中PopupWindow使用方法詳解
參考原文Android PopupWindow用法解析進行學(xué)習(xí),通過實例及PopupWindow源碼分析了PopupWindow的使用。文章最后的“補充Case: 彈窗不消失,但是事件向下傳遞”很贊。
不過,源碼已經(jīng)發(fā)生了變化,文章中提到的PopupViewContainer類,在目前的源碼(Android6.0)中使用的是PopupBackgroundView和PopupDecorView共同完成的。
而在6.0版本的PopupWindow的preparePopup方法中,無論是否setBackgroundDrawable,最終都要創(chuàng)建PopupDecorView實例來生成視圖,而PopupDecorView實現(xiàn)了onTouchEvent,所以用6.0版本開發(fā),運行在6.0的設(shè)備上,無論是否setBackgroundDrawable,點擊popupWindow之外的區(qū)域,popupWindow都會消失。
源碼截圖:
PopupWindow.preparePopup方法:

PopupDecorView類:

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android中ViewPager實現(xiàn)滑動條及與Fragment結(jié)合的實例教程
ViewPager類主要被用來實現(xiàn)可滑動的視圖功能,這里我們就來共同學(xué)習(xí)Android中ViewPager實現(xiàn)滑動條及與Fragment結(jié)合的實例教程,需要的朋友可以參考下2016-06-06
深入學(xué)習(xí)Android?ANR?的原理分析及解決辦法
Android系統(tǒng)中,AMS和WMS會檢測App的響應(yīng)時間,如果App在特定時間無法相應(yīng)屏幕觸摸或鍵盤輸入時間,或者特定事件沒有處理完畢,就會出現(xiàn)ANR。本文將帶領(lǐng)大學(xué)深入學(xué)習(xí)一下ANR的原理及解決辦法,感興趣的同學(xué)可以學(xué)習(xí)一下2021-11-11
Android FrameWork之Zygote啟動示例詳解
這篇文章主要為大家介紹了Android FrameWork之Zygote啟動示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-07-07
Android布局之LinearLayout自定義高亮背景的方法
這篇文章主要介紹了Android布局之LinearLayout自定義高亮背景的方法,實例分析了Android中LinearLayout布局參數(shù)設(shè)置技巧,需要的朋友可以參考下2016-01-01
解決Android studio xml界面無法預(yù)覽問題
這篇文章主要介紹了解決Android studio xml界面無法預(yù)覽問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03

