FloatWindow icon indicating copy to clipboard operation
FloatWindow copied to clipboard

悬浮球如果拖动到顶部状态栏或者底部虚拟导航栏,拖动不出来了

Open rjy15210176435 opened this issue 4 years ago • 5 comments

rjy15210176435 avatar May 06 '20 03:05 rjy15210176435

对,我也发现了

maiduoduo avatar Jun 06 '20 09:06 maiduoduo

请问如何解决呢?

chenlizhong12 avatar Jun 23 '20 08:06 chenlizhong12

解决办法:IFloatWindowImpl类245行 startAnimator()方法之后进行上下边界判断 超出范围强制更新位置;代码如下: if(upY< mB.mView.getHeight()){ //判断手指离开得位置是否小于控件的高度 如果小于高度 证明控件已有部分超出屏幕 updateY(0); //强制更新为0点 } if(Util.isScreenOriatationPortrait(mB.mApplicationContext)){ //经测试发现横竖计算方式有差异。此方法是横竖屏判断 true是竖屏false是横屏 if(upY>Util.getScreenHeight(mB.mApplicationContext)-mB.mView.getHeight()){ //同理 判断手指离开得位置是否大于屏幕高度减去控件的高度 证明控件已有部分超出屏幕 updateY(Util.getScreenHeight(mB.mApplicationContext)-mB.mView.getHeight());//强制更新为屏幕高度减去控件高度 } }else { //以下和竖屏一样 if(upY>Util.getScreenWidth(mB.mApplicationContext)- mB.mView.getHeight()){ updateY(Util.getScreenWidth(mB.mApplicationContext)-mB.mView.getHeight()); } } 底部得位置需要减去状态的高度 否则控件有状态栏高度的部分在屏幕外。(状态栏非透明情况下)

WXFY avatar Jul 24 '20 10:07 WXFY

https://github.com/z2wenfa/FloatWindow 我处理了这个问题,可以看下我的

z2wenfa avatar Jun 05 '21 16:06 z2wenfa

提前获取下 窗口的高度 //内容高度 去除状态栏和导航栏高度 mWindowHeight = Util.getScreenHeight(b.mApplicationContext) - Util.getNavigationBarHeight(b.mApplicationContext);

move中判断下上下 if (newY < 0) { newY = 0; } //包含导航栏的边界 if (newY > mWindowHeight) { newY = mWindowHeight; }

MrLeeys avatar Jul 03 '24 09:07 MrLeeys