From e135072b2c4341ecddf61f27a3fdefe2739130c3 Mon Sep 17 00:00:00 2001 From: linchaolong Date: Tue, 18 Oct 2016 16:16:18 +0800 Subject: [PATCH 1/2] 1. fix SwipeToLoadLayout.setLoadingMore(false) invalid on LoadMoreEnabled=false 2. upgrade gradle --- build.gradle | 2 +- gradle/wrapper/gradle-wrapper.properties | 4 ++-- .../com/aspsine/swipetoloadlayout/SwipeToLoadLayout.java | 7 ++++--- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/build.gradle b/build.gradle index 03bced9..a3330d4 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:2.1.0' + classpath 'com.android.tools.build:gradle:2.2.0' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index c8c90b9..d0fa813 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Wed Sep 02 10:00:37 CST 2015 +#Wed Oct 12 10:04:40 GMT+08:00 2016 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip diff --git a/library/src/main/java/com/aspsine/swipetoloadlayout/SwipeToLoadLayout.java b/library/src/main/java/com/aspsine/swipetoloadlayout/SwipeToLoadLayout.java index 9233ab0..839c770 100644 --- a/library/src/main/java/com/aspsine/swipetoloadlayout/SwipeToLoadLayout.java +++ b/library/src/main/java/com/aspsine/swipetoloadlayout/SwipeToLoadLayout.java @@ -934,16 +934,17 @@ public void run() { * @param loadingMore */ public void setLoadingMore(boolean loadingMore) { - if (!isLoadMoreEnabled() || mFooterView == null) { + if (mFooterView == null) { return; } - this.mAutoLoading = loadingMore; - if (loadingMore) { + if (loadingMore && isLoadMoreEnabled()) { + mAutoLoading = true; if (STATUS.isStatusDefault(mStatus)) { setStatus(STATUS.STATUS_SWIPING_TO_LOAD_MORE); scrollDefaultToLoadingMore(); } } else { + mAutoLoading = false; if (STATUS.isLoadingMore(mStatus)) { mLoadMoreCallback.onComplete(); postDelayed(new Runnable() { From 92b81fe2dae2e88d58e4c19139c9ee8b90f32729 Mon Sep 17 00:00:00 2001 From: linchaolong Date: Tue, 8 Nov 2016 13:50:32 +0800 Subject: [PATCH 2/2] =?UTF-8?q?SwipeToLoadLayout=EF=BC=8CTargetView?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E8=A2=AB=E5=B5=8C=E5=A5=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 2 +- .../swipetoloadlayout/SwipeToLoadLayout.java | 26 ++++++++++++++++--- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/build.gradle b/build.gradle index a3330d4..c20bca1 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:2.2.0' + classpath 'com.android.tools.build:gradle:2.2.2' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files diff --git a/library/src/main/java/com/aspsine/swipetoloadlayout/SwipeToLoadLayout.java b/library/src/main/java/com/aspsine/swipetoloadlayout/SwipeToLoadLayout.java index 839c770..73e42a6 100644 --- a/library/src/main/java/com/aspsine/swipetoloadlayout/SwipeToLoadLayout.java +++ b/library/src/main/java/com/aspsine/swipetoloadlayout/SwipeToLoadLayout.java @@ -58,6 +58,7 @@ public class SwipeToLoadLayout extends ViewGroup { private View mHeaderView; private View mTargetView; + private View mTargetViewContainer; private View mFooterView; @@ -334,6 +335,22 @@ protected void onFinishInflate() { } else if (0 < childNum && childNum < 4) { mHeaderView = findViewById(R.id.swipe_refresh_header); mTargetView = findViewById(R.id.swipe_target); + try { + mTargetViewContainer = (View) mTargetView.getParent(); + if(mTargetViewContainer instanceof SwipeToLoadLayout) { + mTargetViewContainer = null; + }else{ + while(mTargetViewContainer.getParent() != null){ + if(mTargetViewContainer.getParent() instanceof SwipeToLoadLayout){ + break; + } + mTargetViewContainer = (View) mTargetViewContainer.getParent(); + } + } + } catch (Exception e) { + e.printStackTrace(); + mTargetViewContainer = null; + } mFooterView = findViewById(R.id.swipe_load_more_footer); } else { // more than three children: unsupported! @@ -365,7 +382,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { } // target if (mTargetView != null) { - final View targetView = mTargetView; + final View targetView = mTargetViewContainer == null ? mTargetView : mTargetViewContainer; measureChildWithMargins(targetView, widthMeasureSpec, 0, heightMeasureSpec, 0); } // footer @@ -1051,7 +1068,7 @@ private void layoutChildren() { // layout target if (mTargetView != null) { - final View targetView = mTargetView; + final View targetView = mTargetViewContainer == null ? mTargetView : mTargetViewContainer; MarginLayoutParams lp = (MarginLayoutParams) targetView.getLayoutParams(); final int targetLeft = paddingLeft + lp.leftMargin; final int targetTop; @@ -1126,7 +1143,10 @@ private void layoutChildren() { mFooterView.bringToFront(); } } else if (mStyle == STYLE.BLEW || mStyle == STYLE.SCALE) { - if (mTargetView != null) { + if(mTargetViewContainer != null){ + mTargetViewContainer.bringToFront(); + } + else if (mTargetView != null) { mTargetView.bringToFront(); } }