旋转屏时悬浮窗的位置移动设计 - SDKers/FloatWindow GitHub Wiki
旋转屏时悬浮窗的位置移动设计
背景
在旋转屏幕时,悬浮窗会根据老坐标进行展示,且此时拖动也是无效的(拖动计算使用的宽高是旋转之前的)。
方案
悬浮窗在旋转屏幕的时候需要兼容两种模式,一种是应用内使用,一种是全局使用。这意味着需要两种不同的方案。
-
应用使用
集成只在应用内使用时,在
Application.ActivityLifecycleCallbacks
回调中页面打开时,Configuration.orientation
判断页面的方向,若变化则调整。 -
全局使用
生命周期监听无法生效,此时可以通过重力感应器感应,判断竖向或者横向。
-
需要增加接口
需要增加设置是否自动适配,旋转屏幕,默认开始
已知弊端
- 重力感应的时候, 如果页面不旋转,悬浮窗会自动变动