PopupWindow

PopupWindow官方文档
关联文章
http://www.jianshu.com/p/825d1cc9fa79#
http://www.jianshu.com/p/6db4fae05257

安卓弹框:AlertDialog 和PopupWindow

AlertDialog 的位置固定,PopupWindow 的位置是自定义的
AlertDialog 是非阻塞线程的,而PopupWindow 是阻塞线程的,

Google官方文档对PopupWindow的描述

"A popup window that can be used to display an arbitrary view. The popupwindow is a floating container that appears on top of the current activity."

PopupWindow是一个以弹窗方式呈现的控件,可以用来显示任意视图,而且会浮动在当前activity顶部。因此我们可以通过PopupWindow实现各种各样的弹窗效果,进行信息的展示或者是UI交互,由于PopupWindow自定义布局比较方便,而且在显示位置比较自由不受限制,因此受到众多开发者的青睐

PopupWindow的使用

其实PopupWindow的使用非常简单,总的来说分为两步:

1、调用PopupWindow的构造器创建PopupWindow对象,并完成一些初始化设置。
2、调用PopupWindow的showAsDropDown(View view)将PopupWindow作为View组件的下拉组件显示出来;或调用PopupWindow的showAtLocation()方法将PopupWindow在指定位置显示出来。

注意 在使用PopupWindow的时候设置焦点,再设置一个背景

popupWindow.setOutsideTouchable(false);
popupWindow.setFocusable(true);````
![PopupWindow](http://upload-images.jianshu.io/upload_images/1767630-a2822ea705b085e9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

伪代码
       
    private PopupWindow mCustomPopup;

    private void initPopupWindow() {
        View popup = LayoutInflater.from(this).inflate(R.layout.popup_custom, null);
        mCustomPopup = new PopupWindow(popup,
                ViewPager.LayoutParams.WRAP_CONTENT, ViewPager.LayoutParams.WRAP_CONTENT, true);
        if (Build.VERSION.SDK_INT >= 23) {
            mCustomPopup.setElevation(8f);
        } else {
            mCustomPopup.setBackgroundDrawable(new ColorDrawable(0x00000000));
        }
        mCustomPopup.setOutsideTouchable(true);
        mCustomPopup.showAsDropDown(mBtn, 0, 0);
        onPopupWindowClick(popup);
    }

    private void onPopupWindowClick(View popup) {
        popup.findViewById(R.id.tv_item_1).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //do something
                mCustomPopup.dismiss();
            }
        });
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容