您的位置:

Popwindow的用法介绍

一、什么是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元素的效果。