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.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,确保其实例只有一个