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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值