The global floating window must use application as context!
Closed this issue · 2 comments
Wan7451 commented
override fun updateView(view: View) {
if (view.context !is Application) {
throw IllegalArgumentException("view.context != Application,The global floating window must use application as context!")
}
super.updateView(view)
}
为什么要加这个限制?
Wan7451 commented
如何手动调整大小,位置
Petterpx commented
- 当使用全局浮窗时,为避免内存泄漏,必须使用application作为view的context。原理:全局浮窗的生命周期需要处于application级别。
- 位置移动可使用 FloatingX.control().getManagerView()?.moveLocationXXX
- 手动调整大小可以考虑获取浮窗内部的根view,设置其params即可。
ps: 直接获取浮窗view设置params会造成位置异常,目前是个bug,可考虑下面的备选方案:
// 获取浮窗内部子view,设置其params即可
val view = FloatingX.control().getViewHolder()?.getView<View>(R.id.cardItemFx)
view?.layoutParams = FrameLayout.LayoutParams(50, 50)