diff --git a/android/src/main/java/com/swmansion/rnscreens/ScreenContainer.java b/android/src/main/java/com/swmansion/rnscreens/ScreenContainer.java index 299ff52d..e51e8116 100644 --- a/android/src/main/java/com/swmansion/rnscreens/ScreenContainer.java +++ b/android/src/main/java/com/swmansion/rnscreens/ScreenContainer.java @@ -105,6 +105,14 @@ public class ScreenContainer extends ViewGroup { markUpdated(); } + protected void removeAllScreens() { + for (int i = 0, size = mScreenFragments.size(); i < size; i++) { + mScreenFragments.get(i).getScreen().setContainer(null); + } + mScreenFragments.clear(); + markUpdated(); + } + @Override public void startViewTransition(View view) { super.startViewTransition(view); diff --git a/android/src/main/java/com/swmansion/rnscreens/ScreenContainerViewManager.java b/android/src/main/java/com/swmansion/rnscreens/ScreenContainerViewManager.java index fddbb13b..695899de 100644 --- a/android/src/main/java/com/swmansion/rnscreens/ScreenContainerViewManager.java +++ b/android/src/main/java/com/swmansion/rnscreens/ScreenContainerViewManager.java @@ -34,6 +34,11 @@ public class ScreenContainerViewManager extends ViewGroupManager { super.removeScreenAt(index); } + @Override + protected void removeAllScreens() { + mDismissed.clear(); + super.removeAllScreens(); + } + @Override protected boolean hasScreen(ScreenFragment screenFragment) { return super.hasScreen(screenFragment) && !mDismissed.contains(screenFragment); diff --git a/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfig.java b/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfig.java index 90ef863f..93121d01 100644 --- a/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfig.java +++ b/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfig.java @@ -243,6 +243,11 @@ public class ScreenStackHeaderConfig extends ViewGroup { maybeUpdate(); } + public void removeAllConfigSubviews() { + mConfigSubviews.clear(); + maybeUpdate(); + } + public void addConfigSubview(ScreenStackHeaderSubview child, int index) { mConfigSubviews.add(index, child); maybeUpdate(); diff --git a/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfigViewManager.java b/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfigViewManager.java index 7d1f7a56..0e271470 100644 --- a/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfigViewManager.java +++ b/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfigViewManager.java @@ -32,6 +32,11 @@ public class ScreenStackHeaderConfigViewManager extends ViewGroupManager