本文主要是介绍自定义弹窗,dismiss不起作用的问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1、添加依赖
implementation 'com.github.kongzue.DialogX:DialogX:0.0.48'
2、定义弹窗
CustomDialog customDialog = CustomDialog.build(new OnBindView<CustomDialog>(R.layout.upload_file_progess_dialog) {@Overridepublic 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)
这篇关于自定义弹窗,dismiss不起作用的问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!