Я создал навигационный ящик с тремя фрагментами. Мне нужно, чтобы домашний фрагмент имел прозрачную панель инструментов, а остальные 2 фрагмента - видимую панель инструментов с заголовком. Это прекрасно работает, как указано в моем коде здесь , но когда пользователь пытается нажать кнопку «Назад» телефона, возникают две ошибки. 1) Когда пользователь находится во третьем фрагменте и нажимает кнопку «назад», данные во фрагменте 3 не заменяются при обратном нажатии, так что в случае фрагмента 2 при обратном нажатии пользователь все еще может видеть часть данных фрагмента 3. 2) При непрерывном обратном нажатии я получаю эту ошибку из моего первого фрагмента.
java.lang.IllegalStateException: Fragment already added: CustomerFragment{42208250 #0 id=0x7f0900ef frag1}
at android.support.v4.app.FragmentManagerImpl.addFragment(FragmentManager.java:1916)
at android.support.v4.app.BackStackRecord.executePopOps(BackStackRecord.java:828)
at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2622)
at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2411)
at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2366)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2273)
at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:733)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:146)
at android.app.ActivityThread.main(ActivityThread.java:5756)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1291)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1107)
at dalvik.system.NativeStart.main(Native Method)