diff --git a/library/src/main/java/me/imid/swipebacklayout/lib/SwipeBackLayout.java b/library/src/main/java/me/imid/swipebacklayout/lib/SwipeBackLayout.java index e6c0923..82939d7 100644 --- a/library/src/main/java/me/imid/swipebacklayout/lib/SwipeBackLayout.java +++ b/library/src/main/java/me/imid/swipebacklayout/lib/SwipeBackLayout.java @@ -474,6 +474,15 @@ public void attachToActivity(Activity activity) { decor.addView(this); } + public void detachFromActivity(Activity activity) { + ViewGroup decorView = (ViewGroup) activity.getWindow().getDecorView(); + decorView.removeView(this); + View decorChild = getChildAt(0); + removeView(decorChild); + decorView.addView(decorChild,0); + setContentView(decorChild); + } + @Override public void computeScroll() { mScrimOpacity = 1 - mScrollPercent; diff --git a/library/src/main/java/me/imid/swipebacklayout/lib/app/SwipeBackActivity.java b/library/src/main/java/me/imid/swipebacklayout/lib/app/SwipeBackActivity.java index 777797c..65f42c9 100644 --- a/library/src/main/java/me/imid/swipebacklayout/lib/app/SwipeBackActivity.java +++ b/library/src/main/java/me/imid/swipebacklayout/lib/app/SwipeBackActivity.java @@ -2,7 +2,6 @@ package me.imid.swipebacklayout.lib.app; import android.os.Bundle; -import android.support.v4.app.FragmentActivity; import android.support.v7.app.AppCompatActivity; import android.view.View; @@ -22,10 +21,19 @@ protected void onCreate(Bundle savedInstanceState) { @Override protected void onPostCreate(Bundle savedInstanceState) { super.onPostCreate(savedInstanceState); - mHelper.onPostCreate(); } - @Override + @Override protected void onStart() { + super.onStart(); + mHelper.onPostCreate(); + } + + @Override protected void onStop() { + super.onStop(); + mHelper.onStop(); + } + + @Override public View findViewById(int id) { View v = super.findViewById(id); if (v == null && mHelper != null) diff --git a/library/src/main/java/me/imid/swipebacklayout/lib/app/SwipeBackActivityHelper.java b/library/src/main/java/me/imid/swipebacklayout/lib/app/SwipeBackActivityHelper.java index 9aa3374..764fa6e 100644 --- a/library/src/main/java/me/imid/swipebacklayout/lib/app/SwipeBackActivityHelper.java +++ b/library/src/main/java/me/imid/swipebacklayout/lib/app/SwipeBackActivityHelper.java @@ -33,6 +33,10 @@ public void onPostCreate() { mSwipeBackLayout.attachToActivity(mActivity); } + public void onStop() { + mSwipeBackLayout.detachFromActivity(mActivity); + } + public View findViewById(int id) { if (mSwipeBackLayout != null) { return mSwipeBackLayout.findViewById(id);