From cfb7700d01636e82d006f8f89be82fdb977d3b41 Mon Sep 17 00:00:00 2001 From: foolchen Date: Mon, 14 Jan 2019 16:28:21 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9C=A8onStart()=E6=97=B6=E5=B0=86=E5=B8=83?= =?UTF-8?q?=E5=B1=80=E8=BF=98=E5=8E=9F=EF=BC=8C=E4=BF=9D=E8=AF=81=E5=9C=A8?= =?UTF-8?q?=E5=BC=80=E5=90=AF=E7=94=BB=E4=B8=AD=E7=94=BB=E6=A8=A1=E5=BC=8F?= =?UTF-8?q?=E6=97=B6=E4=B8=8D=E4=BC=9A=E9=87=8D=E5=A4=8D=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?View?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../imid/swipebacklayout/lib/SwipeBackLayout.java | 9 +++++++++ .../swipebacklayout/lib/app/SwipeBackActivity.java | 14 +++++++++++--- .../lib/app/SwipeBackActivityHelper.java | 4 ++++ 3 files changed, 24 insertions(+), 3 deletions(-) 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);