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" />