diff options
Diffstat (limited to 'app/src/main/java/se/leap/bitmaskclient/FragmentManagerEnhanced.java')
-rw-r--r-- | app/src/main/java/se/leap/bitmaskclient/FragmentManagerEnhanced.java | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/app/src/main/java/se/leap/bitmaskclient/FragmentManagerEnhanced.java b/app/src/main/java/se/leap/bitmaskclient/FragmentManagerEnhanced.java index 9fe4fd23..a612820d 100644 --- a/app/src/main/java/se/leap/bitmaskclient/FragmentManagerEnhanced.java +++ b/app/src/main/java/se/leap/bitmaskclient/FragmentManagerEnhanced.java @@ -40,9 +40,17 @@ public class FragmentManagerEnhanced { } public void replace(int containerViewId, Fragment fragment, String tag) { - FragmentTransaction transaction = genericFragmentManager.beginTransaction(); + try { + if (genericFragmentManager.findFragmentByTag(tag) != null) { + FragmentTransaction transaction = genericFragmentManager.beginTransaction(); + transaction.replace(containerViewId, fragment, tag).commit(); + } else { + genericFragmentManager.beginTransaction().add(containerViewId, fragment, tag).commit(); + } + } catch (IllegalStateException e) { + e.printStackTrace(); + } - transaction.replace(containerViewId, fragment, tag).commit(); } public FragmentTransaction beginTransaction() { |