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