PopupWindow的简单封装

前言

需要了解PopupWindow的朋友参考下面链接:
www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/0702/1627.html
blog.csdn.net/zhaizu/article/details/48199517

PopupWindow的简单封装

PopupWindow的简单封装_第1张图片
easyPopWindow = new EasyPopWindow(this)
                                    .setInflaterLayout(R.layout.sharepopwidow)//传入需要显示的布局
                                    .setLocationLayout(R.id.btn_center)//传入父布局中的一个布局
                                    .setGravity(Gravity.NO_GRAVITY)//window的显示情况
                                    .isShowAsDropDown(false)是否显示在控件下方
                                    .isShowShadow(false)//是否有膜
                                    .isOutSideTouch(true)//点击其他部分popwindow是否消失,默认点击可消失
                                    .setAnimotionStyle(R.style.mypopwindow_anim_style)//显示动画
                                    .setWidth(WindowManager.LayoutParams.WRAP_CONTENT)//显示布局的宽
                                    .setHeight(WindowManager.LayoutParams.WRAP_CONTENT)//显示布局的高
                                    .setPosition(EasyPopWindow.Position.RIGHT)//相对于父布局显示的位置
                                    .show();

上面代码是需要显示的PopupWindow的一个具体展示,当然一些不需要的可以自行去除。

TextView view = (TextView) easyPopWindow.getView(R.id.pop_text1);
                view.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        //Toast.makeText(MainActivity.this,"xxx",Toast.LENGTH_SHORT).show();
                    }
                });

对传入布局中的控件的一个点击事件,即可通过popwinod.getView得到传入布局中的控件,进行一个自己的操作。

easyPopWindow.setOnDismissListener = new EasyPopWindow.setOnDismissListener() {
                    @Override
                    public void setOnDismissListener() {
                       // Toast.makeText(MainActivity.this,"xxx",Toast.LENGTH_SHORT).show();
                    }
                };

对popwindow dimiss的一个监听,可在里面自行操作。

源码地址

你可能感兴趣的:(PopupWindow的简单封装)