【疑难】Android 在 WindowManager 中使用 ListView 点击不响应问题记录

来源:互联网 发布:淘宝店装修要多少钱 编辑:程序博客网 时间:2024/06/06 04:58

如果需要在 Android 手机上显示一个浮动窗口,你可以使用 WindowManager.addView 


但是这次我遇到的问题是,浮动窗口包含了一个 ListView,遇到的问题是 onItemClick(AdapterView<?> parent, View view, int position, long id) 事件死都不响应


于是我就蛋疼了,各种尝试,查资料,


几番折腾下,终于发现了问题,我之前使用的 flag 是

wmParams.flags = LayoutParams.FLAG_NOT_TOUCH_MODAL|LayoutParams.FLAG_NOT_FOCUSABLE;

后来改成,

wmParams.flags = LayoutParams.FLAG_NOT_TOUCH_MODAL;
问题就解决了,更全一点的代码,

// 2、设置LayoutParams(全局变量)相关参数wmParams = new WindowManager.LayoutParams();// 3、设置相关的窗口布局参数 (悬浮窗口效果)wmParams.type = LayoutParams.TYPE_PHONE; // 设置window type//wmParams.type = LayoutParams.TYPE_APPLICATION; // 设置window typewmParams.format = PixelFormat.RGBA_8888; // 设置图片格式,效果为背景透明// 4、设置Window flag == 不影响后面的事件 wmParams.flags = LayoutParams.FLAG_NOT_TOUCH_MODAL;

就是一个 view 焦点冲突的问题,而 ListView 必须获得焦点,才能响应点击事件





0 0
原创粉丝点击