您现在的位置是:首页 > 正文

popupwindow通过外部控件进行popupwindow间的切换

2024-04-01 01:17:00阅读 0


       最近有个项目,用到了popupwindow,还是在一个activity中用到了多个popupwindow,这就是涉及到popupwindow间的切换了。但每次弹出popupwindow后,想通过点击外部控件进行进行popupwindow间的切换,会发现点击外部控件的时候,只响应了隐藏当前popupwindow的事件,外部控件的点击事件并没有执行,需再次点击外部控件,才弹出popupwindow,这主要是焦点导致的,因为弹框焦点默认设置的是true,所以点击其他按钮,不会触发其他按钮对应的事件,因为焦点不在那个按钮上。所以只要设置成false就好了。

代码如下: 注意要在显示前加上popupWindow.setFocusable(false);设置不获取焦点

		PopupWindow popupWindow = new PopupWindow(popupWindow_view, 200,LayoutParams.MATCH_PARENT, true);
		popupWindow.setWidth(500);

		popupWindow.setFocusable(false); // 设置PopupWindow不获得焦点 


		int[] location = new int[2];
		// 这里是位置显示方式,在屏幕的左侧
		popupWindow.showAtLocation(view, Gravity.NO_GRAVITY,location[0] + view.getWidth(), location[1]);

		// 添加监听
		View popupWindow_view.setFocusableInTouchMode(true);

		popupWindow.setOutsideTouchable(true);
//						// 点击其他地方消失
		popupWindow_view.setOnTouchListener(new OnTouchListener() {
			public boolean onTouch(View v, MotionEvent event) {
								// TODO Auto-generated method stub
				if (popupWindow != null && popupWindow.isShowing()) {
					popupWindow.dismiss();
					popupWindow = null;
					}
					return false;
					}
			});
    这样,在点击外部控件时,会先关闭当前popupwindow再执行外部控件的点击事件,其实就是一个获取焦点的问题,并不像网上说的那么麻烦。


网站文章

  • Elasticsearch 插入时间字段时数据格式问题

    elasticsearch 时间格式 elasticsearch创建index的之后,可以设置mapping。 如果mapping中没有设置date的format,那么默认为两种格式 strict_d...

    2024-04-01 01:16:53
  • Box Shadow(阴影)-Css3写法示例

    Box Shadow(阴影)-Css3演示 -moz-box-shadow:2px 2px 5px #333333; -webkit-box-shadow:2px 2px 5px #333333; box-shadow:2px 2px 5px #333333; transform(变形)和transform-origin(变形原点) -moz-transform:rotate(0deg)...

    2024-04-01 01:16:47
  • Python程序设计教程 第十五章下

    Python程序设计教程 第十五章下

    2024-04-01 01:16:41
  • java.sql.SQLException: Unable to load authentication plugin ‘caching_sha2_password‘.

    错误描述java.sql.SQLException: Unable to load authentication plugin 'caching_sha2_password'. at com.mysq...

    2024-04-01 01:16:16
  • html 合并table列,EL表达式合并table列rowspan

    html 合并table列,EL表达式合并table列rowspan

    如下图问题的描述: 如图所示需要将发货批次相同的列合并,对应的收货状态和查看备注合并。刚开始的思路只限于用js写,后来经过同事的指点发现永EL表达式就能很好的解决,看代码:发货情况发货批次商品发货数量...

    2024-04-01 01:16:09
  • opencv-python——图像增强(高斯滤波,均值滤波,中值滤波,直方图均衡,伽马变换) 最新发布

    opencv-python——图像增强(高斯滤波,均值滤波,中值滤波,直方图均衡,伽马变换) 最新发布

    这种方法的好处是可以有效地避免滤波结果中的边界伪影,但会在图像边缘引入额外的噪声。通过将伽马值设定在低于1的值,可以提升图像中灰度值较低的像素的亮度值,这可以提高图像的整体对比度,从而增强图像的可视性...

    2024-04-01 01:16:03
  • HTTPS

     要说清楚 HTTPS 协议的实现原理,至少需要如下几个背景知识。 1. 大致了解几个基本术语(HTTPS、SSL、TLS)的含义 2. 大致了解 HTTP 和 TCP 的关系(尤其是“短连接”VS“长连接”) 3. 大致了解加密算法的概念(尤其是“对称加密与非对称加密”的区别) 4. 大致了解 CA 证书的用途 考虑到很多技术菜鸟可能不了解上述背景,俺先用最简短的文字描述一下。如

    2024-04-01 01:15:38
  • golang(1):简介

    golang(1):简介

    golang语言特性:1. 垃圾回收 a. 内存自动回收,不需要开发人员管理内存,开发人员专注业务实现 b. 只需要new分配内存,不需要释放 2. 天然并发 a. 从语言层面支持并发,非常简单 b. goroute,轻量级线程,使创建成千上万个 goroute 成为可能 c. 基于CSP(Communicating...

    2024-04-01 01:15:32
  • HTTP协议基础(2)

    计算机专家设计出HTTP,使HTTP客户(如Web浏览器)能够从HTTP服务器(Web服务器)请求信息和服务,HTTP目前协议的版本是1.1.HTTP是一种无状态的协议,无状态是指Web浏览器和Web服务器之间不需要建立持久的连接,这意味着当一个客户端向服务器端发出请求,然后Web服务器返回响应(response),连接就被关闭了,在服务器端不保留连接的有关信息.HTTP遵循请求(Request)

    2024-04-01 01:15:24
  • 面试知识点总结 - js 模块化

    1. Es6 let fn1 = ()=>{ } export{ fn1, fn2 } import {fn1,fn2} from './detail.js'; 内容是对象,分隔...

    2024-04-01 01:14:59