PopupWindow響應返回鍵的問題


      假設情景是這樣的:在一個Activity中彈出一個PopupWindow,要求在按返回鍵時關閉該PopupWindow。

      如果該PopupWindow是無焦點的(默認情況),那么可以在Activity中響應返回鍵(onBackPressed),然后關閉它。

      如果該PopupWindow是有焦點的,那么在它彈出來之后,所有的按鍵和觸摸事件都會被它截獲,包括返回鍵。

      讓PopupWindow獲得焦點有兩種方法,第一種是在創建的時候指定,第二種是在創建之后,調用它的setFocusable方法指定。

      但是僅僅使PopupWindow獲得焦點還不行,此時它不響應返回鍵,也就是說,按返回鍵的時候PopupWindow並不會關閉。

      如果需要PopupWindow響應返回鍵,那么必須給PopupWindow設置一個背景才行,下面是通常的做法:

setFocusable(true);
ColorDrawable dw = new ColorDrawable(0x00000000);
setBackgroundDrawable(dw);

       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM