自定义弹窗,dismiss不起作用的问题

1、添加依赖

implementation 'com.github.kongzue.DialogX:DialogX:0.0.48'

2、定义弹窗

 static CustomDialog customDialog = CustomDialog.build(new OnBindView<CustomDialog>(R.layout.upload_file_progess_dialog) {
        @Override
        public void onBind(CustomDialog dialog, View v) {
        
            progressBar = v.findViewById(R.id.upload_progess);
            progressText = v.findViewById(R.id.progress_text);
            // 设置ProgressBar的最大值
            progressBar.setMax(100);
        }
    }).setBkgInterceptTouch(false);

3、设置进度,刷新dialog

 progressBar.setProgress(progress);
 progressText.setText(progress+"%");
 customDialog.refreshUI();

4、弹窗的show和dismiss

弹窗的show
 if (!customDialog.isShow() && customDialog != null 
            customDialog.show(context);
        }
弹窗的dimiss
if (customDialog.isShow() && e != null){
        Log.d(TAG, "onFailure: dismiss");
        customDialog.dismiss();
                    }

5、dimiss不起作用(上述代码已经修改)

①多次创建dialog,出现多个dialog,看着没有起作用,实际起作用了
解决:在show的时候,判断dialog的状态即isShow进行判断,看是否需要重新创建
②在创建的时候时候,没有使用build,而是使用show,且未在show的时候展示activity,即直接使用dialog.show(),dialog找不到线程
解决:(1)在创建的时候使用build进行创建,见步骤2
(2)在show的时候,使用方法show(activity)
(3)将dialog设置为static,确保其实例只有一个
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值