如果需要在 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 type
wmParams.format = PixelFormat.RGBA_8888; // 设置图片格式,效果为背景透明
// 4、设置Window flag == 不影响后面的事件
wmParams.flags = LayoutParams.FLAG_NOT_TOUCH_MODAL;
就是一个 view 焦点冲突的问题,而 ListView 必须获得焦点,才能响应点击事件