解决PopupWindow实现按钮点击消失和显示,以及点击它外围可以消失的方法
来源:互联网 发布:逆战刷枪软件手机安卓 编辑:程序博客网 时间:2024/04/25 18:52
最近用到PopupWindow,想达到点击某个按钮第一次让它显示,第二次是消失,点击PopupWindow外面也可以让它消失的方式,但是发现无论如何点击按钮,让它显示和消失popupwindow.isShowing()都是false,结果没辙了,只能问群里的哥们。现在问题是解决了,都是他帮忙的。
- 这是点击一个按钮,并在按钮下方显示popupwindow:
case R.id.amount:
if (invest_popup.isShowing()) {
invest_popup.dismiss();
} else {
int location[] = new int[2];
int tabLocation[] = new int[2];
amountbtn.getLocationOnScreen(location);
tablayout.getLocationOnScreen(tabLocation);
invest_popup.showAtLocation(amountbtn, Gravity.NO_GRAVITY, 0,
tabLocation[1] + tablayout.getHeight());
bgLayout.setVisibility(View.VISIBLE);
}
break;
下方是解决popupwindow显示和隐藏的关键代码 :
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
if (checkInteraptorTouch(invest_popup, ev)) {
return true;
}
if (checkInteraptorTouch(term_popup, ev)) {
return true;
}
if (checkInteraptorTouch(rate_popup, ev)) {
return true;
}
return super.dispatchTouchEvent(ev);
}private boolean checkInteraptorTouch(PopupWindow w, MotionEvent ev) {
if (w == null || ev == null || !w.isShowing()) {
return false;
}
View v = w.getContentView();
if (v == null) {
return false;
}
//
int[] xy = new int[2];
v.getLocationOnScreen(xy);
int tx = (int) ev.getX();
int ty = (int) ev.getY();
// 触摸点在对话框外围
if (xy[0] < tx && xy[1] < ty && tx > xy[0] + v.getWidth()
&& ty > xy[1] + v.getHeight()) {
return false;
} else {
w.dismiss();
return true;}
}
- 解决PopupWindow实现按钮点击消失和显示,以及点击它外围可以消失的方法
- 实现点击menu键popupWindow显示和消失,模仿微信更多按钮
- PopupWindow点击边框以外消失的方法
- Android Popupwindow 点击外部消失的实现
- Android popupwindow点击显示,再点击消失
- 关于点击显示PopupWindow再次点击消失的问题
- PopupWindow点击消失的解决办法
- popupwindow点击其它位置和点击back键不消失,以及和dialog的区别。
- Android中popupWindow点击外面区域以及返回键,使popupWindow消失的方法
- 点击PopupWindow外部消失
- popupWindow点击外面消失
- PopupWindow点击界外消失
- PopupWindow 点击其他地方消失
- 正确使用PopupWindow的方法。可以在外面点击消失Pop
- 解决popupwindow点击外面不消失的问题
- android实现点击屏幕其他地方popupwindow消失
- android 实现点击屏幕其他地方popupwindow消失
- popupWindow的使用:点击外面的时候消失或者不消失,都可以进行控制
- 【英语学习】七月份
- 数据库0删除表字段0修改字段0增加字段
- Python的包管理工具
- 限制UITextView输入字数
- data in RW or ZI
- 解决PopupWindow实现按钮点击消失和显示,以及点击它外围可以消失的方法
- hadoop命令源码之ls实现
- 测试MTK andriod 平台是否支持 LINUX GPIO通用操作函数
- Web Uploader 高性能上传解决方案
- hadoop命令源码之text实现
- 从Qt客户端向Erlang服务器发起数据库分页查询的请求(1)
- java乱码解决方案
- travel Beijing
- 关于内存溢出