zyyoona7/EasyPopup

想请教一个问题

Closed this issue · 7 comments

popup里有个RecyclerView,我动态删减item,popup能自动改变高度吗?(比如饿了麽商家界面购物车)

这种情况没有试过,理论上可以实现,如果每次显示之前数据变化了可以通过设置

    /**
     * 是否需要重新获取宽高
     *
     * @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。