Android ListView中给item设置点击事件,点击后弹出popup对话框,再点击应该消失,但是消失一下又出现了
ViewcontentView=View.inflate(getApplicationContext(),R.layout.dialog_popup_item,null)...
View contentView = View.inflate(getApplicationContext(),
R.layout.dialog_popup_item, null);
dismissPopupWindow(); //让popup消失
popupWindow = new PopupWindow(contentView, -2, -2);// -2代表包裹内容,-1代表填充父窗体,比如ViewGroup.LayoutParams.WRAP_CONTENT
int[] location = new int[2];
view.getLocationInWindow(location);
System.out.println(3);
// 做屏幕适配
int dp = 50;
int px = DensityUtil.dip2px(getApplicationContext(), dp);
popupWindow.showAtLocation(parent, Gravity.TOP | Gravity.LEFT,
location[0] + px, location[1]);
/**
* 取消弹出框
*/
private void dismissPopupWindow() {
if (popupWindow != null && popupWindow.isShowing()) {
popupWindow.dismiss();
popupWindow = null;
System.out.println(2);
return;
}
}
我的意思就是点击一下弹出一个气泡对话框,在点击别的地方让他消失就行了,没想到点击别的地方,原来的消失是消失了,可在点击的地方又出现了,相同位置点击时也是先消失后出现 展开
R.layout.dialog_popup_item, null);
dismissPopupWindow(); //让popup消失
popupWindow = new PopupWindow(contentView, -2, -2);// -2代表包裹内容,-1代表填充父窗体,比如ViewGroup.LayoutParams.WRAP_CONTENT
int[] location = new int[2];
view.getLocationInWindow(location);
System.out.println(3);
// 做屏幕适配
int dp = 50;
int px = DensityUtil.dip2px(getApplicationContext(), dp);
popupWindow.showAtLocation(parent, Gravity.TOP | Gravity.LEFT,
location[0] + px, location[1]);
/**
* 取消弹出框
*/
private void dismissPopupWindow() {
if (popupWindow != null && popupWindow.isShowing()) {
popupWindow.dismiss();
popupWindow = null;
System.out.println(2);
return;
}
}
我的意思就是点击一下弹出一个气泡对话框,在点击别的地方让他消失就行了,没想到点击别的地方,原来的消失是消失了,可在点击的地方又出现了,相同位置点击时也是先消失后出现 展开
1个回答
2015-11-21 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
关注
展开全部
有可能是窗口出来后,焦点还在item上,所以当你点击的时候会造成item响应!
你在可以点击事件里加一句代码:item.setclickable(false);在dismiss的时候重新setclickable(true)试试
你在可以点击事件里加一句代码:item.setclickable(false);在dismiss的时候重新setclickable(true)试试
追问
试了试,还是不行,不知道该怎么解决,怎么办呢?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询