写了个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掉。
虽然问题解决了,不过我就纳闷了,为什么背景会有影响咧。