浅谈PopupWindow

本文详细介绍了如何在Android应用中使用PopupWindow创建弹出窗口,包括创建过程、显示方式以及关键参数设置,旨在帮助开发者高效实现弹出功能。

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

PopupWindow是基于在Activity上显示的弹出窗口,PopupWindow 与 Dialog(对话框)相同的是,都是在一个Activity上面弹出来,但不一样的是,PopupWindow没有标题和内容按钮这类的概念,所以PopupWindow里的内容其实就是一个XML布局文件,只需要有一个自定义布局文件(xml)然后把它实例化一个View对象,再调用PopupWindow的setContentView方法,就可以了,但这时要设置好PopupWindow宽和高,因为如果没有设置,是不显示的。然后可以根据需求再设置一些其他参数,例如焦点。


步骤是:new一个PopupWindow 对象,可以在构造方法里设置宽高,也可以通过setWidth和setHight来设置,然后通过setContentView方法把布局文件设进去,再根据需要设置其他参数,然后调用显示的方法,把PopupWindow 显示

PopupWindow的显示方式有3种:

// 相对某个控件的位置(正左下方),无偏移
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

//创建一个View对象(R.layout.two指Popupwindow里的布局文件)
LayoutInflater inflater = (LayoutInflater) context
				.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
		View vv = inflater.inflate(R.layout.two, null);

//创建一个PopupWindow对象,并设置宽高
PopupWindow pop = new PopupWindow(120,100);
//设置View
pop.setContentView(vv);
		
		//如果需要设置其他参数可以参考下面
		//设置控件的宽(如设置LinearLayout的宽一样)
		setWidth(LayoutParams.FILL_PARENT);
		//设置控件的高(如设置LinearLayout的高一样)
		setHeight(LayoutParams.WRAP_CONTENT);
		//设置可点击里面的东西
		setFocusable(true);
		//设置背景
		ColorDrawable cd = new ColorDrawable(0xb0000000);
		setBackgroundDrawable(cd);
//最后调用显示方法,至于调用哪个显示方法,就看具体的需求了


写到这里已经完成了简单的Popupwindow弹出功能


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值