一、什么是Popwindow
1、Popwindow是一种类似于Dialog的浮动窗口,它可以在当前的Activity或者Fragment之上弹出。一般情况下,它会有一个较为短暂的生命周期,并且不能遮挡整个屏幕。
2、Popwindow常用于下拉列表、选择菜单、ToolTip提示、弹出框等UI元素的实现。
二、Popwindow的创建
1、使用Popwindow的3个核心步骤:①创建、②设置属性、③显示。
2、创建Popwindow的过程中需要用到 View 和 LayoutInflator 这两个类。
//创建视图 View popView = LayoutInflater.from(context).inflate(R.layout.pop_view, null); //实例化Popwindow final PopupWindow popupWindow = new PopupWindow(popView, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT, true);
3、此时,我们已经成功创建了一个Popwindow,接下来我们需要对其进行设置属性。
三、Popwindow的属性设置
1、Popwindow的属性设置包括以下几个方面:大小、位置、动画、背景、可否聚焦、可否触摸外部消失、点击事件等。
2、以下是常用的Popwindow属性设置代码:
popupWindow.setWidth(ViewGroup.LayoutParams.WRAP_CONTENT);//设置宽度 popupWindow.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);//设置高度 popupWindow.setAnimationStyle(R.style.PopAnim);//设置动画 popupWindow.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));//设置背景颜色 popupWindow.setOutsideTouchable(true);//设置可否触摸外部取消显示 popupWindow.setFocusable(true);//设置焦点 popView.setOnClickListener(new View.OnClickListener() {//设置点击事件 @Override public void onClick(View v) { Toast.makeText(context, "Click pop view", Toast.LENGTH_SHORT).show(); } }); popupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {//设置消失监听 @Override public void onDismiss() { Toast.makeText(context, "Popwindow dismissed", Toast.LENGTH_SHORT).show(); } });
四、Popwindow的显示
1、Popwindow的显示一般有以下几种方法: ①showAsDropDown、②showAtLocation、③showAsDropDown与showAtLocation相比,前者可以让Popwindow相对于某个View弹出。
2、showAsDropDown的使用示例:
View anchor = findViewById(R.id.anchor_view); popupWindow.showAsDropDown(anchor, 0, 0, Gravity.CENTER);//显示在控件底部居中
五、总结
Popwindow是一种非常实用的浮动窗口,在Android应用开发中常常被用于菜单、列表、提示等UI实现。创建Popwindow需要使用LayoutInflator和View两个类,属性设置可使用setWidth、setHeight、setAnimationStyle、setBackgroundDrawable、setOutsideTouchable、setFocusable等方法进行设置,最后可通过showAsDropDown或showAtLocation来显示Popwindow。掌握Popwindow的创建、设置和显示方法后,我们可以很好地运用它实现各种UI元素的效果。