一直以来都没有记录的习惯,每次做项目都去找之前写过的代码,费时费力,以后在这记录下自己觉得值得记录的东西。
popopwindow的显示隐藏问题,遇到过很多次,每次的效果都不尽人意。今天终于找到好的处理方法,mark下。
今天项目又用到popopwindow,老规矩点击区域外及点击返回按钮取消popupwindow。
代码如下:
popupWindow = new PopupWindow(popupView, 180, LayoutParams.WRAP_CONTENT, false);
popupWindow.setTouchable(true);
//popupwindow 点击区域外消失设置
popupWindow.setBackgroundDrawable(new BitmapDrawable());
popupWindow.setOutsideTouchable(true);
注意点:popupWindow.setBackgroundDrawable(new BitmapDrawable()); ,不设置点击无效。效果是出来了,可点击按钮弹出popupwindow一直无法取消,且点击外部区域popupwindow是取消了,但是直接执行碰触区域的事件,很是烦恼。找了很久找到了解决问题:加上以下代码就完美解决了存在的问题。
popupWindow.setFocusable(true) ;
popupWindow.setTouchable(true) ;
popupWindow.setTouchInterceptor(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
popupWindow.dismiss() ;
return true;
}
}) ;