Android窗口之PopupWindow

PopupWindow通常用於對話框的實現,能夠懸浮在Activity之上。

PopupWindow的位置按照有無偏移分,可以分爲偏移和無偏移兩種;按照參照物的不同,可以分爲相對於某個控件(Anchor錨)和相對於父控件。具體如下

PopupWindow顯示的重要方法

showAsDropDown(View anchor):相對某個控件的位置(正左下方),無偏移
showAsDropDown(View anchor, int xoff, int yoff):相對某個控件的位置,有偏移
showAtLocation(View parent, int gravity, int x, int y):相對於父控件的位置(例如正中央Gravity.CENTER,下方Gravity.BOTTOM等),可以設置偏移或無偏移

PopupWindow注意要點

1/需要設置PopupWindow的焦點,否則自定義佈局的控件將無法響應事件
 this.setFocusable(true);  
 this.setOutsideTouchable(true);  
2/創建PopupWindow時需要爲其設置一個背景,不然,點擊PopupWindow外部,不會讓PopupWindow消失
 // 實例化一個ColorDrawable顏色爲半透明  
 ColorDrawable dw = new ColorDrawable(0000000000);  
 //點back鍵和其他地方使其消失,設置了這個才能觸發OnDismisslistener ,設   置其他控件變化等操作  
 this.setBackgroundDrawable(dw);  
//設置樣式 mPopupWindow.setAnimationStyle(android.R.style.Animation_Dialog); 
// 設置SelectPicPopupWindow彈出窗體動畫效果  
this.setAnimationStyle(R.style.AnimationPreview);  

上面用到的一個動畫:

 <style name="AnimationPreview">
        <item name="android:windowEnterAnimation">@anim/fade_in</item>
        <item name="android:windowExitAnimation">@anim/fade_out</item>
    </style>

瞭解了這些,基於PopupWindow開發 一個對話框就不是難事了;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章