junixapp / XPopup

🔥XPopup2.0版本重磅来袭,2倍以上性能提升,带来可观的动画性能优化和交互细节的提升!!!功能强大,交互优雅,动画丝滑的通用弹窗!可以替代Dialog,PopupWindow,PopupMenu,BottomSheet,DrawerLayout,Spinner等组件,自带十几种效果良好的动画, 支持完全的UI和动画自定义!(Powerful and Beautiful Popup for Android,can absolutely replace Dialog,PopupWindow,PopupMenu,BottomSheet,DrawerLayout,Spinner. With built-in animators , very easy to custom popup view.)
Apache License 2.0
7.76k stars 1.17k forks source link

ConfirmPopupView.setTitleContent 不起作用 #414

Closed RyanJeson closed 4 years ago

RyanJeson commented 4 years ago

页面上有多处要提示默认的弹窗。 想着复用ConfirmPopupView,然后修改弹窗里面的内容。 看了源码调用了setTitleContent设置title和content。 但是实际复用ConfirmPopupView调用setTitleContent方法设置title和content不会发生修改,会显示第一次创建的标题和内容。

  代码:
    if (mConfirmPopupView == null) {
        mConfirmPopupView = new XPopup.Builder(this)
                 .dismissOnTouchOutside(false)
                .setPopupCallback(new SimpleCallback() {
                    @Override
                    public void onCreated() {
                        Log.e("tag", "弹窗创建了");
                    }

                    @Override
                    public void onShow() {
                        Log.e("tag", "onShow");
                    }

                    @Override
                    public void onDismiss() {
                        Log.e("tag", "onDismiss");
                    }

                    //如果你自己想拦截返回按键事件,则重写这个方法,返回true即可
                    @Override
                    public boolean onBackPressed() {
                        ToastUtils.showShort("我拦截的返回按键,按返回键XPopup不会关闭了");
                        return true;
                    }
                }).asConfirm(title, content,
                        "取消", "确定",
                        this,null, TextUtils.isEmpty(cancel));
    }else {
        // 如果已创建,则修改其标题和内容。
        mConfirmPopupView.setTitleContent(title, content, null);
    }
    mConfirmPopupView.show();
junixapp commented 4 years ago

在else中这样写:

else {
        // 如果已创建,则修改其标题和内容。
        mConfirmPopupView = mConfirmPopupView.setTitleContent(title, content, null);
    }