标签:pre html 空白区域 pop-up mod ram iss desc popup
先来看下Android API 的这个Methods:
If the popup is showing, calling this method will take effect only the next time the popup is shown or through a manual call to one of the
update()
methods.
Parameters
touchable | true if the popup should receive outside touch events, false otherwise |
---|
就是说,基本通过这个属性和setFocusable(true);就能实现点击别的区域让popup消失,
也能够这样做,设置点击popup窗口自身,让其消失,通过下边的方法即root重写onTouch方法:
//点击窗口,PopupWindow消失 root.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { popup.dismiss(); return true; } });
@Override public boolean onTouchEvent(MotionEvent event) { if (popup != null && popup.isShowing()) { popup.dismiss(); popup= null; } return super.onTouchEvent(event); }
事实上,罪魁祸首就是, popup的代码顺序, 手贱先调用了 showAsDropDown()方法,在设置其它属性,导致了这样的情况.
showAsDropDown这种方法相当于 Dialog.show()方法, 假设是先show了, 然后其它属性即使是设置了,也起不到应有的作用.
这一点,常常提醒别人,没想到到popup这里我犯了相同的错误.
Android popupwindow 失去焦点或者点击空白区域时消失的解决方法
标签:pre html 空白区域 pop-up mod ram iss desc popup
原文地址:http://www.cnblogs.com/clnchanpin/p/6991895.html