PopupWindow的dismiss

写了个PopupWindow,设置它为focusable,

                   mPopupWindow = new PopupWindow(layout, 100, 100);
                    mPopupWindow.setFocusable(true);
                    mPopupWindow.setTouchable(true);
                    mPopupWindow.showAtLocation(mLinearLayoutEdit, Gravity.CENTER, 0, 0);

结果包含它的Activity不响应除HOME键外的任何消息了,PopupWindow也不消失。如果不设置它为focusable,则它里面包含的listview不响应onItemClickListener了。

怎么既让PopupWindow响应消息又可以focus咧,给它加上背景就行了,如下:

                    mPopupWindow = new PopupWindow(layout, 100, 100);
                    mPopupWindow.setFocusable(true);
                    mPopupWindow.setTouchable(true);
                    BitmapDrawable bitmap = new BitmapDrawable();//add back
                    mPopupWindow.setBackgroundDrawable(bitmap);//add back
                    mPopupWindow.showAtLocation(mLinearLayoutEdit, Gravity.CENTER, 0, 0);

这样,点击除PopupWindow外的区域和back键都可以使PopupWindow给dismiss掉。

虽然问题解决了,不过我就纳闷了,为什么背景会有影响咧。

原文地址:https://www.cnblogs.com/jayceli/p/2428634.html