Giter Site home page Giter Site logo

floatwindow's Issues

oppo R9s 6.0.1 适配完毕

主要修复oppo不能全局展示悬浮窗的问题。
修复代码:
FloatPhone 的方法 init中
判断MIUI出增加OPPO判断即可:

...
 } else if (Miui.rom() || DeviceType.isOppo()) {
...

oppo判断方法如下:

查询build.prop是否有ro.build.version.opporom属性

申请加入维护组

悬浮窗拥有权限但是不显示

library版本:compile 'com.github.yhaolpz:FloatWindow:1.0.8'

ImageView imageView = new ImageView(getApplicationContext());
        imageView.setImageResource(R.mipmap.ic_launcher_round);
        FloatWindow
                .with(getApplicationContext())
                .setView(imageView)
                .setMoveType(MoveType.active)
                .build();

在调用了上面的代码后,悬浮窗不显示。按Home键后再次回到自己的app就会显示悬浮窗。demo没有出现这样的问题,请问有人能知道大概是什么原因引起的么?

权限申请回调

@OverRide
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 756232212) {
if (PermissionUtil.hasPermissionOnActivityResult(this)) {
mPermissionListener.onSuccess();
} else {
//这里应该是 mPermissionListener.onFail();
mPermissionListener.onSuccess();
}
}
finish();
}
代码中申请悬浮窗权限的回调错误,导致的直接问题是在申请悬浮窗权限的时候,用户选择了拒绝。应用崩溃

有没有事件回调?

光有一个显示的但没有点击事件产生好像感觉有点没多大用处,可否设置点击事件监听?

非常棒!

建议加上这几个功能:

  1. 设置悬浮球左右贴边的Margin。
  2. 加入记录悬浮球的位置,当用户重新改变了悬浮球的位置,那么下一次在新的位置出现。
    以上我都实现了,建议楼主加上去。

可否添加一个位置监听

自己添加setOnTouchListener()的话会覆盖手势响应

var con = layoutInflater.inflate(R.layout.view_alert, null)

    var alert = FloatWindow
            .with(getApplicationContext())
            .setView(con)
            .setDesktopShow(true)
            .build()

    con.setOnTouchListener { con, event ->
        Log.d("ceshi", event.x.toString())
        false
    }

显示一下就消失问题

用baseactivity 显示一下就消失了,每次activity创建的时候和resume的时候显示一下就消失
在主界面 activity 里面初始化
FloatWindow
.with(getApplicationContext())
.setView(view)
.setWidth(Screen.width,0.2f)
.setHeight(Screen.width,0.2f)
.setX(Screen.width,0.7f)
.setY(Screen.height,0.2f)
.setMoveType(MoveType.back)
.setMoveStyle(300,null)
.setFilter(true,MainActivity.class)
.build();
FloatWindow.get().show();

悬浮窗没有紧密跟随手指的位置

我发现手指滑动的时候,悬浮窗没有紧密跟随手指的位置,导致滑动幅度大和时间久了之后,最后手指停留的位置和悬浮窗显示的位置距离可以越来越大

不显示悬浮窗,第二次进入应用才显示。

FloatWindow
.with(getApplicationContext())
.setView(imageView)
.setDesktopShow(true) //默认 false
.build();

在界面上到按钮点击后,执行上述代码,然后屏幕上并没有显示悬浮窗,然后我点击home按键,回到桌面,也没有显示,然后我再次进入app到时候,这时候却出现了悬浮窗。
测试环境: 一加5T Android 8.1

NullPointerException:Attempt to invoke interface method 'void

java.lang.RuntimeException:Unable to resume activity {com.gipex.im/com.yhao.floatwindow.FloatActivity}: java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=756232212, result=0, data=null} to activity {com.gipex.im/com.yhao.floatwindow.FloatActivity}: java.lang.NullPointerException: Attempt to invoke interface method 'void com.yhao.floatwindow.PermissionListener.onSuccess()' on a null object reference
2 android.app.ActivityThread.performResumeActivity(ActivityThread.java:3664)
3 ......
4 Caused by:
5 java.lang.NullPointerException:Attempt to invoke interface method 'void com.yhao.floatwindow.PermissionListener.onSuccess()' on a null object reference
6 com.yhao.floatwindow.FloatActivity.onActivityResult(FloatActivity.java:47)
7 android.app.Activity.dispatchActivityResult(Activity.java:7317)
8 android.app.ActivityThread.deliverResults(ActivityThread.java:4351)
9 android.app.ActivityThread.performResumeActivity(ActivityThread.java:3636)
10 android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3704)
11 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2917)
12 android.app.ActivityThread.-wrap11(Unknown Source:0)
13 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1608)
14 android.os.Handler.dispatchMessage(Handler.java:105)
15 android.os.Looper.loop(Looper.java:164)
16 android.app.ActivityThread.main(ActivityThread.java:6665)
17 java.lang.reflect.Method.invoke(Native Method)
18 com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
19 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:781)

设备机型

小米 MI 6
系统版本

Android 8.0.0,level 26

屏幕方向切换

在竖屏时开启悬浮按钮,切换方向后悬浮按钮的自动贴边会出错,自动贴边会贴在屏幕中间。

大概原因应该是转向后悬浮按钮的贴边坐标还是以左上角为原点,横坐标为手机宽度。但是横屏后横坐标应该是手机长度、

我弄的是摄像头预览悬浮

假如app是横屏的,一开始显示的位置就会不对了,而且,横屏一开始摄像头预览显示的方向还是竖屏的方向

兼容问题

我想问下,这个是不是4.4以下就不可以用,应为我们系统 目前兼容到4.0以上

小米手机能够直接申请权限吗

你好:
博主:对于申请权限这块,小米手机就是个奇葩,需要用户手动去申请,但是其用户体验不好,有没能只能跳过申请权限的呢,特别是对于小米手机!

Android8.0报 bad token

Process: com.example.yhao.fixedfloatwindow, PID: 2179
java.lang.RuntimeException: Unable to resume activity {com.example.yhao.fixedfloatwindow/com.example.yhao.floatwindow.A_Activity}: android.view.WindowManager$BadTokenException: Unable to add window android.view.ViewRootImpl$W@da7110b -- permission denied for window type 2002
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3645)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3685)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2898)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6541)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
Caused by: android.view.WindowManager$BadTokenException: Unable to add window android.view.ViewRootImpl$W@da7110b -- permission denied for window type 2002
at android.view.ViewRootImpl.setView(ViewRootImpl.java:789)
at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:356)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:92)
at com.yhao.floatwindow.FloatPhone.init(FloatPhone.java:55)
at com.yhao.floatwindow.IFloatWindowImpl.show(IFloatWindowImpl.java:70)
at com.yhao.floatwindow.IFloatWindowImpl$1.onShow(IFloatWindowImpl.java:52)
at com.yhao.floatwindow.FloatLifecycle.onActivityResumed(FloatLifecycle.java:62)
at android.app.Application.dispatchActivityResumed(Application.java:216)
at android.app.Activity.onResume(Activity.java:1312)
at android.support.v4.app.FragmentActivity.onResume(FragmentActivity.java:437)
at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1354)
at android.app.Activity.performResume(Activity.java:7079)
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3620)

魅族M5s -经测试无法实现悬浮窗

魅族M5s flyme6 android6.0 经测试无法实现悬浮窗,也没有申请权限,如果从应用管理里面把悬浮窗权限打开,是可以实现悬浮窗操作的,希望能够适配,或者有申请权限也可,

bug

在模拟器上,7.1会直接崩溃,真机不知道会怎么样?

有个问题请教一下

机型:非miui android6.0
正常使用是没问题的,但是因为我们是虚拟导航栏(可隐藏的),且悬浮窗刚好就在底部,这样一来导航栏就被悬浮窗盖住了;有没有办法使得虚拟导航栏的层级在悬浮窗之上呢?

可否增加手动控制权限申请

需求:打开app时,弹出dialog询问用户需要获取弹窗权限,确认后再初始化Floatwindow。
问题:dialog确认按钮后,进行初始化Floatwindow,发现没有跳转到权限申请页面,关掉app再开启或者跳转下一个页面的时候才触发权限申请页面。不加判断直接初始化是没问题的

悬浮框

非常感谢提供,能否提供一个功能,可以左滑或者右滑隐藏一半并显示半透明呢,类似应用市场的效果,这个应用场景可能很多,非常感谢 qq1570231200

初始化显示问题

大哥,在Application初始化打开应用就可以显示,换到在MainActivity里面初始化就只能退出一次第二次进入才能显示出来,这是咋回事?

(忽略)宽高不能wrap_content

看了下代码,宽高通过setWidth setHeight 传固定的。
如果我的悬浮窗是一个textview,希望宽高可以根据textview内容自适应,能否添加支持呢

小米权限如何重新获取

第一次获取权限时用户未授权悬浮窗权限,第二次进入页面如何重新获取权限。

@Override
public void show() {
    if (once) {
        mFloatView.init();
        once = false;
        isShow = true;
    } else {
        if (isShow) return;
        getView().setVisibility(View.VISIBLE);
        isShow = true;
    }
}

第一次进来时,未获取到权限,isShow = true。 第二次进页面,如何重新获取权限并初始化mFloatView

消息情况

假设main入口的activity为A。依次有A,B,C,A跳往B、在B创建悬浮窗可以显示一会然后消失,跳到C的时候情况一样。但在A创建则一切正常

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.