Полноэкранный спиннер с использованием DialogFragment - PullRequest
0 голосов
/ 08 июля 2019

В нашем приложении у нас мало проблем после того, как мы запустили DialogFragment как диалог прогресса (это простой диалог, без прогресса). Я хочу решить прежде всего крах. Сбой:

Fatal Exception: java.lang.IllegalStateException: Fragment already added: FullscreenSpinnerProgress{d0206ad #3 progress_animation}
       at android.support.v4.app.FragmentManagerImpl.addFragment + 1916(FragmentManagerImpl.java:1916)
       at android.support.v4.app.BackStackRecord.executeOps + 765(BackStackRecord.java:765)
       at android.support.v4.app.FragmentManagerImpl.executeOps + 2625(FragmentManagerImpl.java:2625)
       at android.support.v4.app.FragmentManagerImpl.executeOpsTogether + 2411(FragmentManagerImpl.java:2411)
       at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute + 2366(FragmentManagerImpl.java:2366)
       at android.support.v4.app.FragmentManagerImpl.execPendingActions + 2273(FragmentManagerImpl.java:2273)
       at android.support.v4.app.FragmentManagerImpl$1.run + 733(FragmentManagerImpl.java:733)
       at android.os.Handler.handleCallback + 751(Handler.java:751)
       at android.os.Handler.dispatchMessage + 95(Handler.java:95)
       at android.os.Looper.loop + 185(Looper.java:185)
       at android.app.ActivityThread.main + 6473(ActivityThread.java:6473)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run + 916(ZygoteInit.java:916)
       at com.android.internal.os.ZygoteInit.main + 806(ZygoteInit.java:806)

Я уже переписал код, чтобы показать диалоговое окно с проверкой, присутствует ли этот фрагмент во фрагмент-менеджере, но это не помогает.

public void show(Activity activity, FragmentManager manager, String tag) {
    if (activity != null && !activity.isFinishing() && manager != null &&
            manager.findFragmentByTag(DEfAULT_FRAGMENT_TAG) == null) {
        FragmentTransaction ft = manager.beginTransaction();
        ft.add(this, tag);
        ft.commitAllowingStateLoss();
    }
}

Мы ожидаем, что диалог прогресса не вызовет сбой и будет работать нормально.

Существует еще одна проблема. Диалог хода выполнения воссоздается при повороте экрана, поэтому он закрывается, но работа все еще продолжается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...