Android实现PopupWindow 弹窗效果 可用于提示信息等

本文介绍了如何在Android中使用PopupWindow实现弹窗效果,包括无偏移和有偏移的显示方式,以及相对于控件和父容器的定位方法。示例代码展示了在正左下方展示PopupWindow的基本步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

效果图如下:


PopupWindow 是一个可以显示在当前 Activity 之上的浮动容器,PopupWindow 弹出的位置是能够改变的,按照有无偏移量,可以分为无偏移和有偏移两种;按照参照对象的不同又可以分为两种:相对某个控件(Anchor 锚点)的位置和在父容器内部的相对位置。

PopupWindow 的实现代码如下:

创建 PopupWindow

LayoutInflater mLayoutInflater = (LayoutInflater) context.getSystemService(LAYOUT_INFLATER_SERVICE);
View contentView = mLayoutInflater.inflate(R.layout.pop, null)// R.layout.pop为 PopupWindow 的布局文件
PopupWindow pop = new PopupWindow(contentView, LayoutParams.FILL_PARENT, LayutParams.WRAP_CONTENT);
pop.setBackgroundDrawable(new BitmapDrawable());                            // 指定 PopupWindow 的背景
pop.setFocusable(true);                   // 设定 PopupWindow 取的焦点,创建出来的 PopupWindow 默认无焦点
显示 PopupWindow


// 相对某个控件的位置(正左下方),无偏移

pop.showAsDropDown(View anchor) 
// 相对某个控件的位置,有偏移,xoff 为 X 轴的偏移量,yoff 为 Y 轴的偏移量                          
pop.showAsDropDown(View anchor, int xoff, int yoff)
// 在父容器的什么位置,gravity 为相对位置,如:正中央 Gravity.CENTER、下方 Gravity.BOTTOM、Gravity.RIGHT|Gravity.BOTTOM 右下方等,后面两个参数为 x/y 轴的偏移量。
pop.showAtLocation(View parent, int gravity, int x, int y)
关闭 PopupWindow
pop.dismiss()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值