Closed Joslyn-Chen closed 1 year ago
这种情况没有试过,理论上可以实现,如果每次显示之前数据变化了可以通过设置
/**
* 是否需要重新获取宽高
*
* @param needReMeasureWH
* @return
*/
public T setNeedReMeasureWH(boolean needReMeasureWH) {
this.isNeedReMeasureWH = needReMeasureWH;
return self();
}
这个方法来使得每次显示 PopupWindow 时重新测量一次宽高,然后显示;如果是在 PopupWindow 正在显示的时候,自动改变高度的话可以重新获取宽高然后通过 PopupWindow.update() 方法更新高度。 这个只是我暂时的思路,并没有验证过,你可以试一下~
@zyyoona7 貌似不行,一调用PopupWindow.update(),PopupWindow就消失了,也没有OnDismissListener回调。
@Joslyn-Chen 如果不急的话,等我有时间尝试一下~再回复你
@Joslyn-Chen 改了一下 demo,在 ComplexPopup 中尝试了一下动态删除,默认的 PopupWindow 是支持的,但是如果使用了相对位置弹窗就不行,应该是测量高度的问题,需要找一个更好的方案,待以后更新~
@zyyoona7 你有找到方案吗? 我发现一个方法可以勉强实现这种问题。 1、List设置setHasFixedSize(false)。 2、显示showAtLocation(anchorView,Gravity.BOTTOM,0,anchorView.getHeight() * 2-10)。 -10是根据实际减的,我测试的anchorView高为131(50dp)。
好的,我记录一下,最近有点忙,没太维护这个项目~等有时间增加适配
@zyyoona7 修改一下, 2、显示showAtLocation(anchorView,Gravity.BOTTOM,0,anchorView.getHeight() +backHeight)。 backHeight是虚拟键高度。 这样如果加了阴影会遮挡底部的anchorView。
popup里有个RecyclerView,我动态删减item,popup能自动改变高度吗?(比如饿了麽商家界面购物车)