EasyPopup icon indicating copy to clipboard operation
EasyPopup copied to clipboard

想请教一个问题

Open Joslyn-Chen opened this issue 6 years ago • 7 comments

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

Joslyn-Chen avatar May 21 '18 09:05 Joslyn-Chen

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

    /**
     * 是否需要重新获取宽高
     *
     * @param needReMeasureWH
     * @return
     */
    public T setNeedReMeasureWH(boolean needReMeasureWH) {
        this.isNeedReMeasureWH = needReMeasureWH;
        return self();
    }

这个方法来使得每次显示 PopupWindow 时重新测量一次宽高,然后显示;如果是在 PopupWindow 正在显示的时候,自动改变高度的话可以重新获取宽高然后通过 PopupWindow.update() 方法更新高度。 这个只是我暂时的思路,并没有验证过,你可以试一下~

zyyoona7 avatar May 21 '18 10:05 zyyoona7

@zyyoona7 貌似不行,一调用PopupWindow.update(),PopupWindow就消失了,也没有OnDismissListener回调。

Joslyn-Chen avatar May 21 '18 11:05 Joslyn-Chen

@Joslyn-Chen 如果不急的话,等我有时间尝试一下~再回复你

zyyoona7 avatar May 22 '18 01:05 zyyoona7

@Joslyn-Chen 改了一下 demo,在 ComplexPopup 中尝试了一下动态删除,默认的 PopupWindow 是支持的,但是如果使用了相对位置弹窗就不行,应该是测量高度的问题,需要找一个更好的方案,待以后更新~

zyyoona7 avatar May 25 '18 01:05 zyyoona7

@zyyoona7 你有找到方案吗? 我发现一个方法可以勉强实现这种问题。 1、List设置setHasFixedSize(false)。 2、显示showAtLocation(anchorView,Gravity.BOTTOM,0,anchorView.getHeight() * 2-10)。 -10是根据实际减的,我测试的anchorView高为131(50dp)。

Joslyn-Chen avatar Sep 04 '18 13:09 Joslyn-Chen

好的,我记录一下,最近有点忙,没太维护这个项目~等有时间增加适配

zyyoona7 avatar Sep 05 '18 00:09 zyyoona7

@zyyoona7 修改一下, 2、显示showAtLocation(anchorView,Gravity.BOTTOM,0,anchorView.getHeight() +backHeight)。 backHeight是虚拟键高度。 这样如果加了阴影会遮挡底部的anchorView。

Joslyn-Chen avatar Sep 14 '18 08:09 Joslyn-Chen