点击一个popupwindow窗口之外的区域popupwindow消失,带来的有关问题!

点击一个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;
			}
		});

即可!!