From 3d9624b92aa00c55d60b2df364b08f924bd80ba0 Mon Sep 17 00:00:00 2001
From: lzx <573842281@qq.com>
Date: Mon, 9 Jan 2017 10:17:07 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../LRecyclerview_library.iml | 14 +++---
.../ItemDecoration/GridItemDecoration.java | 47 ++++++++-----------
.../jdsjlzx/recyclerview/LRecyclerView.java | 3 ++
.../src/main/res/layout/listview_header.xml | 2 +-
.../demo/ui/EndlessGridLayoutActivity.java | 15 ++++--
5 files changed, 43 insertions(+), 38 deletions(-)
diff --git a/LRecyclerview_library/LRecyclerview_library.iml b/LRecyclerview_library/LRecyclerview_library.iml
index 18e9886..996e475 100644
--- a/LRecyclerview_library/LRecyclerview_library.iml
+++ b/LRecyclerview_library/LRecyclerview_library.iml
@@ -63,13 +63,6 @@
-
-
-
-
-
-
-
@@ -77,6 +70,13 @@
+
+
+
+
+
+
+
diff --git a/LRecyclerview_library/src/main/java/com/github/jdsjlzx/ItemDecoration/GridItemDecoration.java b/LRecyclerview_library/src/main/java/com/github/jdsjlzx/ItemDecoration/GridItemDecoration.java
index 736eb9d..0614428 100644
--- a/LRecyclerview_library/src/main/java/com/github/jdsjlzx/ItemDecoration/GridItemDecoration.java
+++ b/LRecyclerview_library/src/main/java/com/github/jdsjlzx/ItemDecoration/GridItemDecoration.java
@@ -15,7 +15,6 @@
import android.support.v7.widget.RecyclerView.LayoutManager;
import android.support.v7.widget.RecyclerView.State;
import android.support.v7.widget.StaggeredGridLayoutManager;
-import android.util.Log;
import android.util.TypedValue;
import android.view.View;
@@ -23,13 +22,13 @@
import com.github.jdsjlzx.recyclerview.LRecyclerViewAdapter;
public class GridItemDecoration extends RecyclerView.ItemDecoration {
- private int V_Space;
- private int H_Space;
+ private int verticalSpace;
+ private int horizontalSpace;
private Paint mPaint;
- public GridItemDecoration(int H_Space, int V_Space, int colour) {
- this.H_Space = H_Space;
- this.V_Space = V_Space;
+ public GridItemDecoration(int horizontalSpace, int verticalSpace, int colour) {
+ this.horizontalSpace = horizontalSpace;
+ this.verticalSpace = verticalSpace;
mPaint = new Paint();
mPaint.setColor(colour);
}
@@ -59,13 +58,11 @@ public void drawHorizontal(Canvas c, RecyclerView parent) {
LRecyclerViewAdapter adapter = (LRecyclerViewAdapter) parent.getAdapter();
for (int i = 0; i < childCount; i++) {
if ((recyclerView.isOnTop() && (adapter.isHeader(i) || adapter.isRefreshHeader(i))) || adapter.isFooter(i)) {
- Log.d("horizontal---no-->", String.valueOf(i) + "----" + childCount);
c.drawRect(0, 0, 0, 0, mPaint);
} else {
- Log.d("horizontal---yes-->", String.valueOf(i));
final View child = parent.getChildAt(i);
final int top = child.getBottom();
- final int bottom = top + V_Space;
+ final int bottom = top + verticalSpace;
int left = child.getLeft();
int right = child.getRight();
c.drawRect(left, top, right, bottom, mPaint);
@@ -84,9 +81,9 @@ public void drawVertical(Canvas c, RecyclerView parent) {
final View child = parent.getChildAt(i);
final RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child.getLayoutParams();
final int top = child.getTop();
- final int bottom = child.getBottom() + V_Space;
+ final int bottom = child.getBottom() + verticalSpace;
final int left = child.getRight() + params.rightMargin;
- final int right = left + H_Space;
+ final int right = left + horizontalSpace;
c.drawRect(left, top, right, bottom, mPaint);
}
@@ -104,10 +101,8 @@ private boolean isLastRaw(RecyclerView parent, int pos, int spanCount, int child
LRecyclerViewAdapter adapter = (LRecyclerViewAdapter) parent.getAdapter();
if (layoutManager instanceof GridLayoutManager) {
int leftCount = childCount - childCount % spanCount;//3
- Log.d("left--->", String.valueOf(leftCount));
//leftCount:若childCount能被span整除为childCount否则为去掉最后一行的item总数
if ((pos - adapter.getHeaderViews().size() + 1) > leftCount) {
- Log.d("no_draw------->", String.valueOf(pos));
return true;
}
}
@@ -132,7 +127,6 @@ public void getItemOffsets(Rect outRect, View view, RecyclerView parent, State s
int itemPosition = parent.getChildAdapterPosition(view);
int spanCount = getSpanCount(parent);
int childCount = parent.getAdapter().getItemCount();
- Log.d("position------->", String.valueOf(itemPosition));
LRecyclerViewAdapter adapter = (LRecyclerViewAdapter) parent.getAdapter();
if (adapter.isFooter(itemPosition) || adapter.isHeader(itemPosition) || adapter.isRefreshHeader(itemPosition)) {
//header,footer不进行绘制
@@ -140,30 +134,29 @@ public void getItemOffsets(Rect outRect, View view, RecyclerView parent, State s
} else {
if (!(parent.getLayoutManager() instanceof GridLayoutManager)) {
//LinearLayoutManager
- Log.d("manager--------->", "LinearLayoutManager: ");
if (itemPosition == (childCount - 2 - adapter.getHeaderViews().size()))
outRect.set(0, 0, 0, 0);
else
- outRect.set(0, 0, 0, V_Space);
+ outRect.set(0, 0, 0, verticalSpace);
} else {
//GridLayoutManager
if (isLastRaw(parent, itemPosition, spanCount, childCount - 2 - adapter.getHeaderViews().size())) {
//最后一行
if (isLastColumn(parent, itemPosition, spanCount)) {
// 最后一行最后一列
- outRect.set(0, 0, 0, V_Space);
+ outRect.set(0, 0, 0, verticalSpace);
} else {
// 最后一行不是最后一列
- outRect.set(0, 0, H_Space, V_Space);
+ outRect.set(0, 0, horizontalSpace, verticalSpace);
}
} else {
//最后一列
if (isLastColumn(parent, itemPosition, spanCount)) {
// 最后一列最后一行
- outRect.set(0, 0, 0, V_Space);
+ outRect.set(0, 0, 0, verticalSpace);
} else {
// 最后一列非最后一行
- outRect.set(0, 0, H_Space, V_Space);
+ outRect.set(0, 0, horizontalSpace, verticalSpace);
}
}
@@ -216,26 +209,26 @@ public Builder setColor(@ColorInt int color) {
//通过dp设置垂直间距
- public Builder setmVertical(@DimenRes int mVertical) {
- this.mVertical = mResources.getDimensionPixelSize(mVertical);
+ public Builder setVertical(@DimenRes int vertical) {
+ this.mVertical = mResources.getDimensionPixelSize(vertical);
return this;
}
//通过px设置垂直间距
- public Builder setmVertical(float mVertical) {
+ public Builder setVertical(float mVertical) {
this.mVertical = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_PX, mVertical, mResources.getDisplayMetrics());
return this;
}
//通过dp设置水平间距
- public Builder setmHorizontal(@DimenRes int mHorizontal) {
- this.mHorizontal = mResources.getDimensionPixelSize(mHorizontal);
+ public Builder setHorizontal(@DimenRes int horizontal) {
+ this.mHorizontal = mResources.getDimensionPixelSize(horizontal);
return this;
}
//通过px设置水平间距
- public Builder setmHorizontal(float mHorizontal) {
- this.mHorizontal = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_PX, mHorizontal, mResources.getDisplayMetrics());
+ public Builder setHorizontal(float horizontal) {
+ this.mHorizontal = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_PX, horizontal, mResources.getDisplayMetrics());
return this;
}
diff --git a/LRecyclerview_library/src/main/java/com/github/jdsjlzx/recyclerview/LRecyclerView.java b/LRecyclerview_library/src/main/java/com/github/jdsjlzx/recyclerview/LRecyclerView.java
index cebe045..8dfa086 100644
--- a/LRecyclerview_library/src/main/java/com/github/jdsjlzx/recyclerview/LRecyclerView.java
+++ b/LRecyclerview_library/src/main/java/com/github/jdsjlzx/recyclerview/LRecyclerView.java
@@ -363,6 +363,9 @@ public void setPullRefreshEnabled(boolean enabled) {
}
public void setLoadMoreEnabled(boolean enabled) {
+ if(mWrapAdapter == null){
+ throw new NullPointerException("mWrapAdapter cannot be null, please make sure the variable mWrapAdapter have been initialized.");
+ }
mLoadMoreEnabled = enabled;
if (!enabled) {
if(mWrapAdapter.getFooterViewsCount() > 0) {
diff --git a/LRecyclerview_library/src/main/res/layout/listview_header.xml b/LRecyclerview_library/src/main/res/layout/listview_header.xml
index 386e57b..ecdd894 100644
--- a/LRecyclerview_library/src/main/res/layout/listview_header.xml
+++ b/LRecyclerview_library/src/main/res/layout/listview_header.xml
@@ -24,7 +24,7 @@
android:id="@+id/refresh_status_textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:textColor="#666666"
+ android:textColor="#B5B5B5"
android:text="@string/listview_header_hint_normal" />