diff --git a/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfig.java b/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfig.java index 93121d01..e6065dc2 100644 --- a/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfig.java +++ b/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfig.java @@ -33,6 +33,7 @@ public class ScreenStackHeaderConfig extends ViewGroup { private boolean mGestureEnabled = true; private boolean mIsBackButtonHidden; private boolean mIsShadowHidden; + private boolean mDestroyed; private int mTintColor; private final Toolbar mToolbar; @@ -63,6 +64,10 @@ public class ScreenStackHeaderConfig extends ViewGroup { // no-op } + public void destroy() { + mDestroyed = true; + } + @Override protected void onAttachedToWindow() { super.onAttachedToWindow(); @@ -116,7 +121,7 @@ public class ScreenStackHeaderConfig extends ViewGroup { boolean isRoot = stack == null ? true : stack.getRootScreen() == parent; boolean isTop = stack == null ? true : stack.getTopScreen() == parent; - if (!mIsAttachedToWindow || !isTop) { + if (!mIsAttachedToWindow || !isTop || mDestroyed) { return; } @@ -225,7 +230,7 @@ public class ScreenStackHeaderConfig extends ViewGroup { } private void maybeUpdate() { - if (getParent() != null) { + if (getParent() != null && !mDestroyed) { onUpdate(); } } diff --git a/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfigViewManager.java b/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfigViewManager.java index 0e271470..7ba8f26c 100644 --- a/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfigViewManager.java +++ b/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfigViewManager.java @@ -4,11 +4,12 @@ import android.view.View; import com.facebook.react.bridge.JSApplicationCausedNativeException; import com.facebook.react.module.annotations.ReactModule; -import com.facebook.react.uimanager.PixelUtil; import com.facebook.react.uimanager.ThemedReactContext; import com.facebook.react.uimanager.ViewGroupManager; import com.facebook.react.uimanager.annotations.ReactProp; +import javax.annotation.Nonnull; + @ReactModule(name = ScreenStackHeaderConfigViewManager.REACT_CLASS) public class ScreenStackHeaderConfigViewManager extends ViewGroupManager { @@ -32,6 +33,11 @@ public class ScreenStackHeaderConfigViewManager extends ViewGroupManager