razerdp / BasePopup

Android下打造通用便捷的PopupWindow弹窗库
https://github.com/razerdp/BasePopup
Apache License 2.0
5.2k stars 759 forks source link

如何从底部弹出到屏幕中心 #487

Closed jdleung closed 1 year ago

jdleung commented 1 year ago

目前弹窗显示在屏幕中心的话,弹出的初始位置是弹窗最终显示的底部。说明书有动画达到从底部弹出,但显示时弹窗底部仍紧贴屏幕的底部,怎样可以做到从底部弹出屏幕的中心?

谢谢

razerdp commented 1 year ago

弹窗布局在哪最终显示在哪。 比如gravity = center,那么弹窗显示在center 具体可以看看文档 https://www.yuque.com/razerdp/basepopup/qnu3qd

jdleung commented 1 year ago

弹出到屏幕中心是可以,但我想做到的是整个弹窗从屏幕底部弹出到屏幕中心,而不是屏幕中心往下弹窗高度一半的位置。

razerdp commented 1 year ago

这里提供一个参考

class TestPopup extends BasePopupWindow {

        public TestPopup(Context context) {
            super(context);
            //代码忽略...
            setClipChildren(false);
        }

        @Override
        protected Animation onCreateShowAnimation() {
            //UIHelper.getScreenHeight()换成你所使用的获取屏幕高度的方法即可
            return AnimationHelper.asAnimation()
                    .withTranslation(TranslationConfig.FROM_BOTTOM.fromY(UIHelper.getScreenHeight() - getHeight()))
                    .toShow();
        }

    }
jdleung commented 1 year ago

可以了,其他参数设置要认真看一下说明书。谢谢