Closed houkhan closed 1 year ago
EasyWindow 在多个Activity中展示的时候 切换 activity 后 如果不保存坐标 回到了默认的地方 我在设置了
.setOnTouchListener { window, _, _ -> LogUtils.dTag(TAG, "setOnTouchListener--mWindowParams!=null") mWindowParams = window.windowParams true }
发现没有触发 我需要在什么时机获取并保存 windowParams
另外 我在 使用了 setOnClickListener 确保 了 mWindowParams 可以赋值 但是这个时候 setWindowParams(mWindowParams) 后 悬浮窗找不到了
setOnClickListener { window, view -> LogUtils.dTag(TAG, "setOnClickListener--mWindowParams!=null") mWindowParams = window.windowParams }
我的完整代码如下 请教下大佬 我该在什么时机 获取并保存 windowParams 获取后 直接设置 .setWindowParams(mWindowParams) 是有什么问题吗 为什么会找不到了呢
object FloatViewUtils { private const val TAG = "FloatViewUtils" private var mWindowParams: WindowManager.LayoutParams? = null fun initFloat() { // 注册Activity生命周期监听 registerActivityLifecycleCallbacks() } /** * 注册Activity生命周期监听 */ private fun registerActivityLifecycleCallbacks() { Abase.app.registerActivityLifecycleCallbacks(object : Application.ActivityLifecycleCallbacks { override fun onActivityCreated(activity: Activity, savedInstanceState: Bundle?) { LogUtils.dTag(TAG, "onActivityCreated--${activity.localClassName}") } override fun onActivityStarted(activity: Activity) { LogUtils.dTag(TAG, "onActivityStarted--${activity.localClassName}") } override fun onActivityResumed(activity: Activity) { LogUtils.dTag(TAG, "onActivityResumed--${activity.localClassName}") if (mWindowParams == null) { LogUtils.dTag(TAG, "onActivityResumed--${activity.localClassName}--mWindowParams==null") EasyWindow.with(activity) .setContentView(R.layout.float_download) .setDraggable(SpringDraggable()) .setGravity(Gravity.END or Gravity.CENTER_VERTICAL) .setTag(activity.localClassName) .setOnClickListener { window, view -> LogUtils.dTag(TAG, "setOnClickListener--mWindowParams==null") mWindowParams = window.windowParams } /*.setOnTouchListener { window, _, _ -> LogUtils.dTag(TAG, "setOnTouchListener--mWindowParams==null") mWindowParams = window.windowParams true }*/ .show() } else { LogUtils.dTag(TAG, "onActivityResumed--${activity.localClassName}--mWindowParams!=null") EasyWindow.with(activity) .setContentView(R.layout.float_download) .setDraggable(SpringDraggable()) .setWindowParams(mWindowParams) .setTag(activity.localClassName) .setOnClickListener { window, view -> LogUtils.dTag(TAG, "setOnClickListener--mWindowParams!=null") mWindowParams = window.windowParams } /*.setOnTouchListener { window, _, _ -> LogUtils.dTag(TAG, "setOnTouchListener--mWindowParams!=null") mWindowParams = window.windowParams true }*/ .show() } } override fun onActivityPaused(activity: Activity) { LogUtils.dTag(TAG, "onActivityPaused--${activity.localClassName}") EasyWindow.cancelByTag(activity.localClassName) EasyWindow.recycleByTag(activity.localClassName) } override fun onActivityStopped(activity: Activity) { LogUtils.dTag(TAG, "onActivityStopped--${activity.localClassName}") } override fun onActivitySaveInstanceState(activity: Activity, outState: Bundle) { LogUtils.dTag(TAG, "onActivitySaveInstanceState--${activity.localClassName}") } override fun onActivityDestroyed(activity: Activity) { LogUtils.dTag(TAG, "onActivityDestroyed--${activity.localClassName}") } }) } }
否
是
小伙子,不好意思,最近工作比较忙,加上提 issue 的人比较多,不小心把你漏掉了
EasyWindow-10.5.aar.zip
小伙子, 你可以下载上面的 aar 包,我在 setOnWindowLifecycle 加了一个窗口更新回调,你可以直接在这个回调中做坐标的更新。
小伙子,远程依赖已经更新,更新到 10.5 版本即可。
问题描述【必填】
EasyWindow 在多个Activity中展示的时候 切换 activity 后 如果不保存坐标 回到了默认的地方 我在设置了
发现没有触发 我需要在什么时机获取并保存 windowParams
另外 我在 使用了 setOnClickListener 确保 了 mWindowParams 可以赋值 但是这个时候 setWindowParams(mWindowParams) 后 悬浮窗找不到了
我的完整代码如下 请教下大佬 我该在什么时机 获取并保存 windowParams 获取后 直接设置 .setWindowParams(mWindowParams) 是有什么问题吗 为什么会找不到了呢
框架文档是否提及了该问题【必答】
否
是否已经查阅框架文档但还未能解决的【必答】
是
issue 列表中是否有人曾提过类似的问题【必答】
否
是否已经搜索过了 issue 列表但还未能解决的【必答】
是