下面列出了怎么用android.support.v7.widget.StaggeredGridLayoutManager的API类实例代码及写法,或者点击链接到github查看源代码。
@Override
public void getItemOffsets(@NonNull Rect outRect, @NonNull View view, @NonNull RecyclerView parent,
@NonNull RecyclerView.State state) {
RecyclerView.LayoutManager layoutManager = parent.getLayoutManager();
if (layoutManager instanceof LinearLayoutManager) {
int orientation = getOrientation(layoutManager);
int position = parent.getChildLayoutPosition(view);
int spanCount = getSpanCount(layoutManager);
int childCount = layoutManager.getItemCount();
if (orientation == RecyclerView.VERTICAL) {
offsetVertical(outRect, position, spanCount, childCount);
} else {
offsetHorizontal(outRect, position, spanCount, childCount);
}
} else if (layoutManager instanceof StaggeredGridLayoutManager) {
outRect.set(mWidth, mHeight, mWidth, mHeight); // |-|-
}
}
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mData.add(R.mipmap.array_list);
mData.add(R.mipmap.singel_linked);
mData.add(R.mipmap.linked_list);
mData.add(R.mipmap.stack);
mData.add(R.mipmap.queue);
mData.add(R.mipmap.bst);
setContentView(R.layout.activity_home);
mRecyclerView = findViewById(R.id.id_rv);
mRecyclerView.setLayoutManager(new StaggeredGridLayoutManager(3, StaggeredGridLayoutManager.VERTICAL));
mRecyclerView.setAdapter(new HomeRVAdapter(this, mData));
}
@Override
public void onViewAttachedToWindow(RecyclerView.ViewHolder holder) {
int position = holder.getLayoutPosition();
if (isHeaderViewPos(position) || isFooterViewPos(position)) {
ViewGroup.LayoutParams lp = holder.itemView.getLayoutParams();
if (lp != null
&& lp instanceof StaggeredGridLayoutManager.LayoutParams) {
StaggeredGridLayoutManager.LayoutParams p =
(StaggeredGridLayoutManager.LayoutParams) lp;
p.setFullSpan(true);
}
super.onViewAttachedToWindow(holder);
} else {
mInnerAdapter.onViewAttachedToWindow(holder);
}
}
private boolean isLastRaw(RecyclerView parent, int pos, int spanCount, int childCount) {
LayoutManager layoutManager = parent.getLayoutManager();
if (layoutManager instanceof GridLayoutManager) {
if (pos >= childCount - (childCount % spanCount)) {
return true;
}
} else if (layoutManager instanceof StaggeredGridLayoutManager) {
if (((StaggeredGridLayoutManager) layoutManager).getOrientation() == 1) {
if (pos >= childCount - (childCount % spanCount)) {
return true;
}
} else if ((pos + 1) % spanCount == 0) {
return true;
}
}
return false;
}
public static void scrollTo(Object scroll, float yOffset) {
if (scroll instanceof RecyclerView) {
//RecyclerView.scrollTo : UnsupportedOperationException
//Moved to the RecyclerView.LayoutManager.scrollToPositionWithOffset
//Have to be instanceOf RecyclerView.LayoutManager to work (so work with RecyclerView.GridLayoutManager)
final RecyclerView.LayoutManager layoutManager = ((RecyclerView) scroll).getLayoutManager();
if (layoutManager instanceof LinearLayoutManager) {
LinearLayoutManager linearLayoutManager = (LinearLayoutManager) layoutManager;
linearLayoutManager.scrollToPositionWithOffset(0, (int) -yOffset);
} else if (layoutManager instanceof StaggeredGridLayoutManager) {
StaggeredGridLayoutManager staggeredGridLayoutManager = (StaggeredGridLayoutManager) layoutManager;
staggeredGridLayoutManager.scrollToPositionWithOffset(0, (int) -yOffset);
}
} else if (scroll instanceof NestedScrollView) {
((NestedScrollView) scroll).scrollTo(0, (int) yOffset);
}
}
/**
* if layout manager do not have this method , will return 0
*
* @return
*/
public int findFirstVisibleItemPosition() {
LayoutManager manager = getLayoutManager();
int firstVisibleItems = 0;
if (manager instanceof LinearLayoutManager) {
firstVisibleItems = ((LinearLayoutManager) manager).findFirstVisibleItemPosition();
} else if (manager instanceof GridLayoutManager) {
firstVisibleItems = ((GridLayoutManager) manager).findFirstVisibleItemPosition();
} else if (manager instanceof StaggeredGridLayoutManager) {
StaggeredGridLayoutManager sg = ((StaggeredGridLayoutManager) manager);
int[] items = new int[sg.getSpanCount()];
items = ((StaggeredGridLayoutManager) manager).findFirstVisibleItemPositions(items);
firstVisibleItems = items[0];
}
return firstVisibleItems;
}
private boolean isLastColum(RecyclerView parent, int pos, int spanCount,
int childCount) {
RecyclerView.LayoutManager layoutManager = parent.getLayoutManager();
if (layoutManager instanceof GridLayoutManager) {
if ((pos + 1) % spanCount == 0)// 如果是最后一列,则不需要绘制右边
{
return true;
}
} else if (layoutManager instanceof StaggeredGridLayoutManager) {
int orientation = ((StaggeredGridLayoutManager) layoutManager)
.getOrientation();
if (orientation == StaggeredGridLayoutManager.VERTICAL) {
if ((pos + 1) % spanCount == 0)// 如果是最后一列,则不需要绘制右边
{
return true;
}
} else {
childCount = childCount - childCount % spanCount;
if (pos >= childCount)// 如果是最后一列,则不需要绘制右边
return true;
}
}
return false;
}
/**
* 设置加载更多的footer
*
* @param mRecycler
* @param foot
*/
public void setFootView(RecyclerView mRecycler,View foot){
RecyclerView.Adapter mAdapter = mRecycler.getAdapter();
if(mAdapter == null || !(mAdapter instanceof PowerfulRecyclerAdapter)){
return ;
}
PowerfulRecyclerAdapter realAdapter = (PowerfulRecyclerAdapter)mAdapter;
if(realAdapter.hasFootView()){
return;
}
RecyclerView.LayoutManager manager = mRecycler.getLayoutManager();
int spanCount = 1;
if(manager instanceof GridLayoutManager){
spanCount = ((GridLayoutManager)manager).getSpanCount();
}else if(manager instanceof StaggeredGridLayoutManager) {
spanCount = ((StaggeredGridLayoutManager) manager).getSpanCount();
}
realAdapter.setFootView(foot, spanCount);
}
/**
* 获取底部可见项的位置
*
* @return
*/
public int getLastVisibleItemPosition()
{
LayoutManager lm = getLayoutManager();
int lastVisibleItemPosition = 0;
if (lm instanceof GridLayoutManager)
{
lastVisibleItemPosition = ((GridLayoutManager) lm).findLastVisibleItemPosition();
} else if (lm instanceof LinearLayoutManager)
{
lastVisibleItemPosition = ((LinearLayoutManager) lm).findLastVisibleItemPosition();
} else if (lm instanceof StaggeredGridLayoutManager)
{
int positions[] = new int[1];
((StaggeredGridLayoutManager) lm).findLastVisibleItemPositions(positions);
lastVisibleItemPosition = positions[0];
}
return lastVisibleItemPosition;
}
private void setSpanLookUp(RecyclerView.LayoutManager layoutManager, final int spanCount) {
if (layoutManager instanceof GridLayoutManager) {
((GridLayoutManager) layoutManager).setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
@Override
public int getSpanSize(int position) {
if (adapter != null) {
return adapter.isHeaderOrFooter(position) ? spanCount : 1;
}
return GridLayoutManager.DEFAULT_SPAN_COUNT;
}
});
} else if (layoutManager instanceof StaggeredGridLayoutManager) {
((StaggeredGridLayoutManager) layoutManager).setSpanCount(spanCount);
}
}
/**
* 计算第一个元素的位置
*/
private int calculateFirstVisibleItemPos(RecyclerView.LayoutManager layoutManager, int firstVisibleItemPosition) {
switch (mLayoutManagerType) {
case LINEAR:
mLastVisibleItemPosition = ((LinearLayoutManager) layoutManager).findLastVisibleItemPosition();
firstVisibleItemPosition = ((LinearLayoutManager) layoutManager).findFirstVisibleItemPosition();
break;
case GRID:
mLastVisibleItemPosition = ((GridLayoutManager) layoutManager).findLastVisibleItemPosition();
firstVisibleItemPosition = ((GridLayoutManager) layoutManager).findFirstVisibleItemPosition();
break;
case STAGGERED_GRID:
StaggeredGridLayoutManager staggeredGridLayoutManager = (StaggeredGridLayoutManager) layoutManager;
if (mLastPositions == null) {
mLastPositions = new int[staggeredGridLayoutManager.getSpanCount()];
}
mLastPositions = staggeredGridLayoutManager.findLastVisibleItemPositions(mLastPositions);
mLastVisibleItemPosition = findMax(mLastPositions);
staggeredGridLayoutManager.findFirstCompletelyVisibleItemPositions(mLastPositions);
firstVisibleItemPosition = findMax(mLastPositions);
break;
}
return firstVisibleItemPosition;
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
// Layout Managers:
final StaggeredGridLayoutManager layoutManager =
new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL);
recyclerView.setLayoutManager(layoutManager);
// Item Decorator:
// recyclerView.addItemDecoration(new DividerItemDecoration(getResources().getDrawable(R.drawable.divider)));
// recyclerView.setItemAnimator(new FadeInLeftAnimator());
// /* Listeners */
// recyclerView.setOnScrollListener(onScrollListener);
}
private boolean isLastColum(RecyclerView parent, int pos, int spanCount,
int childCount) {
RecyclerView.LayoutManager layoutManager = parent.getLayoutManager();
if (layoutManager instanceof GridLayoutManager) {
if ((pos + 1) % spanCount == 0)// 如果是最后一列,则不需要绘制右边
{
return true;
}
} else if (layoutManager instanceof StaggeredGridLayoutManager) {
int orientation = ((StaggeredGridLayoutManager) layoutManager)
.getOrientation();
if (orientation == StaggeredGridLayoutManager.VERTICAL) {
if ((pos + 1) % spanCount == 0)// 如果是最后一列,则不需要绘制右边
{
return true;
}
} else {
childCount = childCount - childCount % spanCount;
if (pos >= childCount)// 如果是最后一列,则不需要绘制右边
return true;
}
}
return false;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view=inflater.inflate(R.layout.recycle_view, container, false);
recyclerView=(BaseRecycleView)view.findViewById(R.id.recycle_view);
list=new ArrayList<>();
list.add(new HobbyArray(1,"",1,1));
list.add(new HobbyArray(1,"",1,1));
list.add(new HobbyArray(1,"",1,1));
adapter=new MyAdapter();
recyclerView.setLayoutManager(new StaggeredGridLayoutManager(1, StaggeredGridLayoutManager.VERTICAL));
TextView empty=(TextView)view.findViewById(R.id.empty_view);
empty.setText("似乎没什么感兴趣的呢");
recyclerView.setEmptyView(empty);
recyclerView.setAdapter(adapter);
return view;
}
public RecyclerViewElasticityAdapter(RecyclerView recyclerView) {
mRecyclerView = recyclerView;
final RecyclerView.LayoutManager layoutManager = recyclerView.getLayoutManager();
if (layoutManager instanceof LinearLayoutManager ||
layoutManager instanceof StaggeredGridLayoutManager)
{
final int orientation =
(layoutManager instanceof LinearLayoutManager
? ((LinearLayoutManager) layoutManager).getOrientation()
: ((StaggeredGridLayoutManager) layoutManager).getOrientation());
if (orientation == LinearLayoutManager.HORIZONTAL) {
mImpl = new ImplHorizLayout();
} else {
mImpl = new ImplVerticalLayout();
}
}
else
{
throw new IllegalArgumentException("Recycler views with custom layout managers are not supported by this adapter out of the box." +
"Try implementing and providing an explicit 'impl' parameter to the other c'tors, or otherwise create a custom adapter subclass of your own.");
}
}
@Override
public void onBindViewHolder( BaseViewHolder viewHolder, final int position ){
super.onBindViewHolder( viewHolder, position );
BaseItem i = getPresenter().getItem( position );
if( getItemViewType( position ) == TYPE_BEER_PRODUCT ){
final BeerProductItem item = (BeerProductItem) i;
BeerProductHolder holder = (BeerProductHolder) viewHolder;
holder.onBind( item );
holder.setOnClickBeerListener( onClickBeer( item ) );
}else if( getItemViewType( position ) == BaseItemType.TYPE_PROGRESS ){
StaggeredGridLayoutManager.LayoutParams layoutParams =
(StaggeredGridLayoutManager.LayoutParams) viewHolder.itemView.getLayoutParams();
layoutParams.setFullSpan( true );
viewHolder.itemView.setLayoutParams( layoutParams );
}
}
/**
* 判断是否是最后一列
*/
private boolean isLastColumn(RecyclerView parent, int pos, int spanCount, int childCount) {
RecyclerView.LayoutManager layoutManager = parent.getLayoutManager();
if (layoutManager instanceof GridLayoutManager) {
if ((pos + 1) % spanCount == 0) {// 如果是最后一列,则不需要绘制右边
return true;
}
} else if (layoutManager instanceof StaggeredGridLayoutManager) {
int orientation = ((StaggeredGridLayoutManager) layoutManager)
.getOrientation();
if (orientation == StaggeredGridLayoutManager.VERTICAL) {
if ((pos + 1) % spanCount == 0) {// 如果是最后一列,则不需要绘制右边
return true;
}
} else {
childCount = childCount - childCount % spanCount;
if (pos >= childCount) {// 如果是最后一列,则不需要绘制右边
return true;
}
}
}
return false;
}
public static int getLastVisiblePosition(RecyclerView recyclerView) {
RecyclerView.LayoutManager manager = recyclerView.getLayoutManager();
int position;
if (manager instanceof GridLayoutManager) {
position = ((GridLayoutManager) manager).findLastVisibleItemPosition();
} else if (manager instanceof LinearLayoutManager) {
position = ((LinearLayoutManager) manager).findLastVisibleItemPosition();
} else if (manager instanceof StaggeredGridLayoutManager) {
StaggeredGridLayoutManager layoutManager = (StaggeredGridLayoutManager) manager;
int[] lastPositions = layoutManager.findLastVisibleItemPositions(new int[layoutManager.getSpanCount()]);
position = getMaxPosition(lastPositions);
} else {
position = manager.getItemCount() - 1;
}
return position;
}
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
totalItemCount = layoutManager.getItemCount();
visibleItemCount = recyclerView.getChildCount();
if (layoutManager instanceof StaggeredGridLayoutManager) {
((StaggeredGridLayoutManager) layoutManager).findLastVisibleItemPositions(staggerLastVisibleItemPosition);
lastVisibleItemPosition = findMax(staggerLastVisibleItemPosition);
} else if (layoutManager instanceof LinearLayoutManager) {
lastVisibleItemPosition = ((LinearLayoutManager) layoutManager).findLastVisibleItemPosition();
}
if (loading) {
if (totalItemCount - 1 > previousTotal) { //加载完数据而不是footer
loading = false;
previousTotal = totalItemCount;
}
}
if (!loading && visibleItemCount > 0
&& lastVisibleItemPosition
>= (totalItemCount - visibleThreshold)) {
currentPage++;
loading = true;
onLoadMore(currentPage);
}
}
/**
* is position align top of recycler view
* 从当前位置找起,只要找到一个跟自己的spanIndex一样的就说明不是第一行,或者已经查找过的spancount >= spanCount说明不是第一行
*
* @param parent
* @param position
* @param totalSpanCount
* @return
*/
boolean isTop(RecyclerView parent, int position, int totalSpanCount) {
if (parent.getLayoutManager() instanceof GridLayoutManager) {
GridLayoutManager.SpanSizeLookup sizeLookup = ((GridLayoutManager) parent.getLayoutManager()).getSpanSizeLookup();
if (sizeLookup != null) {
int currentSpanIndex = sizeLookup.getSpanIndex(position, totalSpanCount);
int lookupedSpanCount = 0;
for (int i = position - 1; i >= 0; i--) {
lookupedSpanCount = lookupedSpanCount + sizeLookup.getSpanSize(i);
if (lookupedSpanCount >= totalSpanCount) {
return false;
}
if (sizeLookup.getSpanIndex(i, totalSpanCount) == currentSpanIndex) {
return false;
}
}
return true;
}
} else if (parent.getLayoutManager() instanceof StaggeredGridLayoutManager) {
return position < totalSpanCount;//staggered 的每一列一个span
}
return false;
}
/**
* 获取第一条展示的位置
*
* @return
*/
private int getFirstVisiblePosition() {
int position;
if (getLayoutManager() instanceof LinearLayoutManager) {
position = ((LinearLayoutManager) getLayoutManager()).findFirstVisibleItemPosition();
} else if (getLayoutManager() instanceof GridLayoutManager) {
position = ((GridLayoutManager) getLayoutManager()).findFirstVisibleItemPosition();
} else if (getLayoutManager() instanceof StaggeredGridLayoutManager) {
StaggeredGridLayoutManager layoutManager = (StaggeredGridLayoutManager) getLayoutManager();
int[] lastPositions = layoutManager.findFirstVisibleItemPositions(new int[layoutManager.getSpanCount()]);
position = getMinPositions(lastPositions);
} else {
position = 0;
}
return position;
}
private boolean isLastColum(RecyclerView parent, int pos, int spanCount,
int childCount) {
RecyclerView.LayoutManager layoutManager = parent.getLayoutManager();
if (layoutManager instanceof GridLayoutManager) {
if ((pos + 1) % spanCount == 0)// 如果是最后一列,则不需要绘制右边
{
return true;
}
} else if (layoutManager instanceof StaggeredGridLayoutManager) {
int orientation = ((StaggeredGridLayoutManager) layoutManager)
.getOrientation();
if (orientation == StaggeredGridLayoutManager.VERTICAL) {
if ((pos + 1) % spanCount == 0)// 如果是最后一列,则不需要绘制右边
{
return true;
}
} else {
childCount = childCount - childCount % spanCount;
if (pos >= childCount)// 如果是最后一列,则不需要绘制右边
return true;
}
}
return false;
}
/**
* TODO 支持offset
*
* @param section
* @param rowInSection
* @param offset
* @param animate
* @return
*/
@Override
public UDBaseListOrRecyclerView scrollToItem(int section, int rowInSection, int offset, boolean animate) {
LVRecyclerView recyclerView = getLVRecyclerView();
if (recyclerView != null) {
if (animate) {
recyclerView.smoothScrollToPosition(getPositionBySectionAndRow(section, rowInSection));
} else {
if (recyclerView.getLayoutManager() instanceof LinearLayoutManager) {
((LinearLayoutManager) recyclerView.getLayoutManager()).scrollToPositionWithOffset(getPositionBySectionAndRow(section, rowInSection), offset);
} else if (recyclerView.getLayoutManager() instanceof StaggeredGridLayoutManager) {
((StaggeredGridLayoutManager) recyclerView.getLayoutManager()).scrollToPositionWithOffset(getPositionBySectionAndRow(section, rowInSection), offset);
} else {
recyclerView.scrollToPosition(getPositionBySectionAndRow(section, rowInSection));
}
}
}
return this;
}
/**
* if layout manager do not have this method , will return 0
*
* @return
*/
public int findFirstVisibleItemPosition() {
LayoutManager manager = getLayoutManager();
int firstVisibleItems = 0;
if (manager instanceof LinearLayoutManager) {
firstVisibleItems = ((LinearLayoutManager) manager).findFirstVisibleItemPosition();
} else if (manager instanceof GridLayoutManager) {
firstVisibleItems = ((GridLayoutManager) manager).findFirstVisibleItemPosition();
} else if (manager instanceof StaggeredGridLayoutManager) {
StaggeredGridLayoutManager sg = ((StaggeredGridLayoutManager) manager);
int[] items = new int[sg.getSpanCount()];
items = ((StaggeredGridLayoutManager) manager).findFirstVisibleItemPositions(items);
firstVisibleItems = items[0];
}
return firstVisibleItems;
}
static void setFullWidthLayoutParams(View parent, RecyclerView.ViewHolder holder) {
// is recycler view (should be)
if (!(parent instanceof RecyclerView)) {
return;
}
RecyclerView rv = (RecyclerView) parent;
// is grid layout manager, maybe is, maybe not
if (!(rv.getLayoutManager() instanceof StaggeredGridLayoutManager)) {
return;
}
StaggeredGridLayoutManager.LayoutParams lp;
if (holder.itemView.getLayoutParams() instanceof StaggeredGridLayoutManager.LayoutParams) {
lp = (StaggeredGridLayoutManager.LayoutParams) holder.itemView.getLayoutParams();
lp.setFullSpan(true);
} else {
lp = new StaggeredGridLayoutManager.LayoutParams(holder.itemView.getLayoutParams());
lp.setFullSpan(true);
holder.itemView.setLayoutParams(lp);
}
}
private boolean isLastColum(RecyclerView parent, int pos, int spanCount,
int childCount) {
LayoutManager layoutManager = parent.getLayoutManager();
if (layoutManager instanceof GridLayoutManager) {
if ((pos + 1) % spanCount == 0)// 如果是最后一列,则不需要绘制右边
{
return true;
}
} else if (layoutManager instanceof StaggeredGridLayoutManager) {
int orientation = ((StaggeredGridLayoutManager) layoutManager)
.getOrientation();
if (orientation == StaggeredGridLayoutManager.VERTICAL) {
if ((pos + 1) % spanCount == 0)// 如果是最后一列,则不需要绘制右边
{
return true;
}
} else {
childCount = childCount - childCount % spanCount;
if (pos >= childCount)// 如果是最后一列,则不需要绘制右边
return true;
}
}
return false;
}
private boolean isLastColum(RecyclerView parent, int pos, int spanCount,
int childCount) {
LayoutManager layoutManager = parent.getLayoutManager();
if (layoutManager instanceof GridLayoutManager) {
if ((pos + 1) % spanCount == 0)// 如果是最后一列,则不需要绘制右边
{
return true;
}
} else if (layoutManager instanceof StaggeredGridLayoutManager) {
int orientation = ((StaggeredGridLayoutManager) layoutManager)
.getOrientation();
if (orientation == StaggeredGridLayoutManager.VERTICAL) {
if ((pos + 1) % spanCount == 0)// 如果是最后一列,则不需要绘制右边
{
return true;
}
} else {
childCount = childCount - childCount % spanCount;
if (pos >= childCount)// 如果是最后一列,则不需要绘制右边
{
return true;
}
}
}
return false;
}
private void fullSpan(boolean fullspan) {
if (mView != null) {
StaggeredGridLayoutManager.LayoutParams layoutParams =
new StaggeredGridLayoutManager.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT);
layoutParams.setFullSpan(fullspan);
mView.setLayoutParams(layoutParams);
}
}
@Override
public int getMovementFlags(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) {
RecyclerView.LayoutManager manager = recyclerView.getLayoutManager();
int dragFlags;
if (manager instanceof GridLayoutManager || manager instanceof StaggeredGridLayoutManager) {
//监听上下左右拖动
dragFlags = ItemTouchHelper.UP | ItemTouchHelper.DOWN | ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT;
} else {
dragFlags = ItemTouchHelper.UP | ItemTouchHelper.DOWN;
}
return makeMovementFlags(dragFlags, 0);
}
private boolean isLastColumn(RecyclerView parent, int pos, int spanCount,
int childCount) {
RecyclerView.LayoutManager layoutManager = parent.getLayoutManager();
if (layoutManager instanceof GridLayoutManager) {
if ((pos + 1) % spanCount == 0){
return true;
}
}
else if (layoutManager instanceof StaggeredGridLayoutManager) {
int orientation = ((StaggeredGridLayoutManager) layoutManager)
.getOrientation();
if (orientation == StaggeredGridLayoutManager.VERTICAL) {
// 如果是最后一列,则不需要绘制右边
if ((pos + 1) % spanCount == 0) {
return true;
}
}
else {
childCount = childCount - childCount % spanCount;
// 如果是最后一列,则不需要绘制右边
if (pos >= childCount)
return true;
}
}
return false;
}