Skip to content

Commit 80370e3

Browse files
committed
Merge pull request #3 from markzhai/master
add support for GridLayoutManager
2 parents 10f7669 + a782df2 commit 80370e3

File tree

1 file changed

+17
-3
lines changed

1 file changed

+17
-3
lines changed

library/src/main/java/com/cjj/loadmore/RecyclerViewWithFooter.java

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import android.content.Context;
55
import android.support.annotation.DrawableRes;
66
import android.support.annotation.IntDef;
7+
import android.support.v7.widget.GridLayoutManager;
78
import android.support.v7.widget.LinearLayoutManager;
89
import android.support.v7.widget.RecyclerView;
910
import android.support.v7.widget.StaggeredGridLayoutManager;
@@ -364,9 +365,22 @@ public void onBindViewHolder(ViewHolder holder, int position) {
364365
mAdapter.onBindViewHolder(holder, position);
365366
} else {
366367
if (getLayoutManager() instanceof StaggeredGridLayoutManager) {
367-
StaggeredGridLayoutManager.LayoutParams layoutParams = (StaggeredGridLayoutManager.LayoutParams) (getLayoutManager()).generateDefaultLayoutParams();
368-
layoutParams.setFullSpan(true);
369-
holder.itemView.setLayoutParams(layoutParams);
368+
ViewGroup.LayoutParams layoutParams = holder.itemView.getLayoutParams();
369+
if (layoutParams instanceof StaggeredGridLayoutManager.LayoutParams) {
370+
((StaggeredGridLayoutManager.LayoutParams) layoutParams).setFullSpan(true);
371+
}
372+
} else if (getLayoutManager() instanceof GridLayoutManager) {
373+
final GridLayoutManager layoutManager = (GridLayoutManager) getLayoutManager();
374+
layoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
375+
@Override
376+
public int getSpanSize(int position) {
377+
int viewType = getAdapter().getItemViewType(position);
378+
if (viewType < 0) {
379+
return layoutManager.getSpanCount();
380+
}
381+
return 1;
382+
}
383+
});
370384
}
371385
if (holder instanceof VH) {
372386
((VH) holder).onBindViewHolder();

0 commit comments

Comments
 (0)