绝大多数情况下,定制一个基于BasePopup的弹窗都跟编写Dialog一样:
- 编写xml
- 创建继承BasePopupWindow的java类
- setContentView()设置您的View或者layout ID
- new出对象并调用
showPopupWindow()
生命期
BasePopup会绑定传入的Activity
或者Fragment
的生命期(如果您有自己的LifecycleOwner,您也可以使用bindLifecycleOwner
进行更换绑定对象),当且仅当其宿主进入Destroy或您主动调用BasePopup的destroy()
方法时,BasePopup才会真正销毁并释放资源。
对于同一个BasePopup对象来说,只要宿主没销毁,dismiss()
是不会导致BasePopup销毁的,您可以反复show/dismiss,不必担心每一次show都是创建新的对象。
提示 请务必注意您的构造器传值,BasePopup生命期绑定的对象是您构造器传入的值。 如果您是在Activity中的Fragment使用,如果构造器中传入的是context,那么Fragment销毁时,BasePopup并不会销毁释放,而是等到Activity销毁时才会执行destroy()。 |
---|
使用建议
对于使用率频繁的BasePopup来说,我们建议您将其用作成员变量,一次创建多次使用,而不要在使用的时候都创建新的对象。