跟系统的PopupWindow一样,当我们需要对BasePopup的布局或设置进行修改,同时不希望其重新走一遍dismiss->show的逻辑时,我们可以通过update()来完成更新。
update()及其重载方法请参考以下表格:

方法 描述
update() 更新BasePopup设置。
update(View) 更新BasePopup锚点View
update(int x,int y) 更新BasePopup坐标
update(float width,float height) 更新BasePopup的宽高(为了跟坐标区分,请传入float值,如:100.0)
update(int x,int y,float width,float height) 更新BasePopup的坐标和宽高
提示
update()会导致requestLayout(),BasePopup可能会重新进行一次measure和layout,因此非常不建议在连续update的情况下使用背景模糊,这会导致较大的性能消耗。

示例

ezgif-2-295cb4ef14f2.gif