点击一个popupwindow窗口之外的区域popupwindow消失,带来的问题!!
popupwindow窗口之外的区域popupwindow消失 , 以前说过需要设置:
mPopupWindow.setFocusable(true); // 设置PopupWindow可获得焦点
mPopupWindow.setTouchable(true); // 设置PopupWindow可触摸
mPopupWindow.setOutsideTouchable(true); // 设置非PopupWindow区域可触摸
mPopupWindow.setBackgroundDrawable(getResources().getDrawable(R.drawable.chooseballbg));//
// 这句话必须有,否则
// // 按返回键
// // popwindow不能消失 或者加入这句话
// ColorDrawable dw = new ColorDrawable(-00000);
// mPopupWindow.setBackgroundDrawable(dw);
但是: 加入这些之后,我给Popwindow加了动画的,出现一个恶心的问题:就是popwindow在执行动画过程中,如果Popwindow上有button类似的控件,控件有背景色的变化,就会带来非常恶心的现象: 点击的控件的那一块竟然出现漏洞了,透明的一块,这就是
mPopupWindow.setBackgroundDrawable(getResources().getDrawable(R.drawable.chooseballbg));//
带来的恶果!! 咋办呢? 我这样做的:这句话我不用了!! 用别的方法来实现popwindow的dismiss。
用这种方法:就是利用popwindow内部的空间加入按键事件!!
这样的:
LinearLayout layouttemp = (LinearLayout) view
.findViewById(R.id.linearlayout_blank);
layouttemp.setFocusable(true);
layouttemp.setFocusableInTouchMode(true);
layouttemp.setOnKeyListener(new OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
// 手机键盘上的返回键
switch (keyCode) {
case KeyEvent.KEYCODE_BACK:
mPopupWindow.dismiss();
break;
}
return false;
}
});
即可!!