绝大多数情况下,定制一个基于BasePopup的弹窗都跟编写Dialog一样:

  • 编写xml
  • 创建继承BasePopupWindow的java类
  • 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来说,我们建议您将其用作成员变量,一次创建多次使用,而不要在使用的时候都创建新的对象。