POPUPWINDOW 按返回键和按空白地方不消失的解决办法

来源:互联网 发布:kali linux破解wifi 编辑:程序博客网 时间:2024/05/20 11:47
 popupWindow = new PopupWindow(view, LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); 2 popupWindow.setFocusable(true); 3  4 //下面2行是解决点击空白地方不消失的问题 5 popupWindow.setOutsideTouchable(true); 6 popupWindow.getContentView().setOnTouchListener(new OnTouchListener() 7 { 8     public boolean onTouch(View v, MotionEvent event) 9     {10         popupWindow.dismiss();11         return true;12     }13 });14 15 //下面2行是解决按返回键不消失的问题,16 //btnlayout这个popupWindow布局中的一个控件不要用有点击的控件17 View btnlayout = view.findViewById(R.id.calendar_view);18 btnlayout.setFocusableInTouchMode(true);19 btnlayout.setOnKeyListener(new OnKeyListener()20 {21     @Override22     public boolean onKey(View v, int keyCode, KeyEvent event)23     {24         if (keyCode == KeyEvent.KEYCODE_BACK)25         {26             if (popupWindow != null)27             {28                 popupWindow.dismiss();29             }30             return true;31         }32         return false;33     }34 });
复制代码

 

 

只需要给PopupWindow 中随便一个view设置个OnKeyListener 就可以了,因为前面设置了 pw.setFocusable(true); 所以PopupWindow 抢到了焦点所以造成了按返回键不消失或接受不到返回键。

0 0
原创粉丝点击