Android 悬浮框 覆盖与被覆盖

简介

悬浮窗是Android平台的特色之一,熟练使用悬浮窗很重要,当大家都使用悬浮窗的时候,于是乎就有了现在的覆盖与被覆盖的问题。

在笔者接触所有app中,悬浮窗的覆盖能力最强的属某点,几乎把其他所有的app都覆盖了。

详情

涉及悬浮窗口的类:WindowManager、WindowManagerImpl,CompatModeWrapper(WindowManagerImpl的内部类),LocalWindowManager(Window的内部类)。

如图:

掌握了它的原理,我们来写一个项目测试,测试结果如下:

在View相同等级情况下(flag标识),后弹出的悬浮窗覆盖之前的悬浮窗。

有没有一种方法令所有的悬浮窗都被覆盖?

笔者有几种方案:

1、反射机制清空所有的悬浮窗。(已实现)

2、找出最大flag标识。(已实现)

3、判断自己的悬浮窗是否被覆盖,被覆盖则重新弹出。(已实现)

悬浮窗能不能监听到返回键?

笔者目前没找到一种有效的方案,本想通过底层拦截事件然后返回给悬浮窗,但后来想想,简单的程序简单做,不要把程序搞得那么复杂。

好了不多说了,方案已经列出来了,感兴趣的朋友赶紧去实现吧。

时间: 2024-07-30 17:23:07

Android 悬浮框 覆盖与被覆盖的相关文章

android悬浮框的使用

实质就是开启一个界面透明的activity 注意:在startService 想在startActivity intent必须要设置addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 直接上Demo---myFloat http://pan.baidu.com/s/1gdIK4QR android悬浮框的使用

Android软键盘弹出,覆盖h5页面输入框问题

之前我们在使用vue进行 h5 表单录入的过程中,遇到了Android软键盘弹出,覆盖 h5页面 输入框 问题,在此进行回顾并分享给大家: 系统:Android 条件:当输入框在可视区底部或者偏下的位置 触发条件:输入框获取焦点,弹出软键盘 表现:软键盘 覆盖 h5页面中的输入框 问题分析: 1.发现问题:当前页面中box为flex布局,内容为上下固定高,中间自适应(中间区域内容过多会出现滚动条,input框在wrapper的底部),input获取焦点,手机键盘弹出,input未上移到可视区内,

小米Adnroid默认禁止悬浮框的使用,导致开发的悬浮框无法接收事件

比如你建了一个悬浮框: WindowManager windowManager = getWindowManager(context); int screenWidth = windowManager.getDefaultDisplay().getWidth(); if (smallWindow == null) { smallWindow = new FloatWindowSmallView(context); if (smallWindowParams == null) { smallWin

使用悬浮框监听内存的使用状态 -- 附源码

源码下载地址:http://download.csdn.net/detail/hewence1/8176601 <span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">先看一下效果:  显示当前内存使用率55% ,每一秒都刷新一次</span> 实现原理,在Service中创建一个悬浮框就可,在service中每秒钟访问计算一次单

Echarts ecomfe 触摸屏 touch 在IE10下无法显示悬浮框

问题描述: Windows 8 IE10浏览http://echarts.baidu.com/doc/example/line2.html 时,鼠标放置在数据点上时无法显示悬浮框. 正常情况为: 而现在情况为: ? 问题分析: 公司有各种型号电脑,X230,W530,X240,业务部门多使用x240, 这一款笔记本屏幕带有触摸屏功能,其他型号没有.所有操作系统都为win8,IE10小版本号也一致. 最初就将问题定位为触摸屏引起了这个问题,但一直无法找到具体原因.因为在chrome,firfox等

js实现页面悬浮框

当滚动条下拉时,悬浮框位置不变,主要是 position:fixed;样式的作用. 当下拉到一定程度,接近footer时,我用js控制div消失,往上拉滚动条时又显示. <!DOCTYPE html> <html> <head> <title></title> <style type="text/css"> .div1 { height:2000px; } .div2 { width:100%; height:35

“右侧悬浮框”页面特效

功能描述: 悬浮框固定在页面右下方,随着滚动条的滚动,悬浮框运动到固定位置. 实现效果: 编码思路: 获取滚动条滚动时,方块需要移动的目标位置(可视区域的高度-物体高度-滚动的高度). 套用运动框架. 示例代码:

软件测试中条件覆盖,路径覆盖,语句覆盖,分支覆盖的区别

举个例子吧     if   A   and   B   then   Action1     if   C   or   D   then   Action2         语句覆盖最弱,只需要让程序中的语句都执行一遍即可   .上例中只需设计测试用例使得A=true   B=true   C=true   即可.         分支覆盖又称判定覆盖:使得程序中每个判断的取真分支和取假分支至少经历一次,即判断的真假均曾被满足.上例需要设计测试用例使其分别满足下列条件即可(1)A=true,

JavaScript侧边悬浮框

<script> window.onscroll=function(){ var oDiv=document.getElementById('div1'); var scrollTop=document.documentElement.scrollTop||document.body.scrollTop; oDiv.style.top=(document.documentElement.clientHeight-oDiv.offsetHeight)/2+scrollTop+'px'; star