Есть у меня обычный DialogFragment для показа ProgressBar-а
public class LoadingDialogFragment extends DialogFragment {
public static final String TAG = "LoadingDialogFragment";
public static LoadingDialogFragment newInstance() {
return new LoadingDialogFragment();
}
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
Dialog dialog = super.onCreateDialog(savedInstanceState);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.loading_indicator);
dialog.setCancelable(false);
dialog.setCanceledOnTouchOutside(false);
dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
return dialog;
}
}
Показываю и скрываю этот индикатор я так
protected void showLoadingDialogFragment() {
LoadingDialogFragment dialog = LoadingDialogFragment.newInstance();
dialog.setCancelable(false);
dialog.show(getSupportFragmentManager(), LoadingDialogFragment.TAG);
}
protected void hideLoadingDialogFragment() {
Fragment fragment = getSupportFragmentManager().findFragmentByTag(LoadingDialogFragment.TAG); // здесь null
if (fragment instanceof LoadingDialogFragment) {
((DialogFragment) fragment).dismiss();
}
}
Все всегда работало нормально, но недавно возникла ситуация в одном месте: диалог отображается, но после окончания загрузки данных не скрывается. Я дебаггером смотрю что и как - метод hideLoadingDialogFragment вызывается, но
getSupportFragmentManager().findFragmentByTag(LoadingDialogFragment.TAG);
возвращает null(я в коде указал это место), несмотря на то что на экране отображается этот самый диалог. Каким образом можно отловить ошибку? что я не так делаю, куда пропадает фрагмент из ФрагментМенеджера?