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开发 一个对话框就不是难事了;

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