android.support.v7.widget.GridLayoutManager#SpanSizeLookup ( )源码实例Demo

下面列出了android.support.v7.widget.GridLayoutManager#SpanSizeLookup ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: Bailan   文件: WrapperUtils.java
public static void onAttachedToRecyclerView(RecyclerView.Adapter innerAdapter, RecyclerView recyclerView, final SpanSizeCallback callback) {
    innerAdapter.onAttachedToRecyclerView(recyclerView);

    RecyclerView.LayoutManager layoutManager = recyclerView.getLayoutManager();
    if (layoutManager instanceof GridLayoutManager) {
        final GridLayoutManager gridLayoutManager = (GridLayoutManager) layoutManager;
        final GridLayoutManager.SpanSizeLookup spanSizeLookup = gridLayoutManager.getSpanSizeLookup();

        gridLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
            @Override
            public int getSpanSize(int position) {
                return callback.getSpanSize(gridLayoutManager, spanSizeLookup, position);
            }
        });
        gridLayoutManager.setSpanCount(gridLayoutManager.getSpanCount());
    }
}
 
源代码2 项目: SimpleRecyclerView   文件: SimpleRecyclerView.java
public void useGridMode(int spanCount) {
  setGridSpanCount(spanCount);
  setLayoutManager(new GridLayoutManager(getContext(), spanCount));

  GridLayoutManager.SpanSizeLookup spanSizeLookup = new GridLayoutManager.SpanSizeLookup() {
    @Override
    public int getSpanSize(int position) {
      try {
        return adapter.getCell(position).getSpanSize();
      } catch (Exception e) {
        return 1;
      }
    }
  };
  spanSizeLookup.setSpanIndexCacheEnabled(true);
  ((GridLayoutManager) getLayoutManager()).setSpanSizeLookup(spanSizeLookup);
}
 
源代码3 项目: baseAdapter   文件: WrapperUtils.java
public static void onAttachedToRecyclerView(RecyclerView.Adapter innerAdapter, RecyclerView recyclerView, final SpanSizeCallback callback)
{
    innerAdapter.onAttachedToRecyclerView(recyclerView);

    RecyclerView.LayoutManager layoutManager = recyclerView.getLayoutManager();
    if (layoutManager instanceof GridLayoutManager)
    {
        final GridLayoutManager gridLayoutManager = (GridLayoutManager) layoutManager;
        final GridLayoutManager.SpanSizeLookup spanSizeLookup = gridLayoutManager.getSpanSizeLookup();

        gridLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup()
        {
            @Override
            public int getSpanSize(int position)
            {
                return callback.getSpanSize(gridLayoutManager, spanSizeLookup, position);
            }
        });
        gridLayoutManager.setSpanCount(gridLayoutManager.getSpanCount());
    }
}
 
源代码4 项目: likequanmintv   文件: WrapperUtils.java
public static void onAttachedToRecyclerView(RecyclerView.Adapter innerAdapter, RecyclerView recyclerView, final SpanSizeCallback callback)
{
    innerAdapter.onAttachedToRecyclerView(recyclerView);

    RecyclerView.LayoutManager layoutManager = recyclerView.getLayoutManager();
    if (layoutManager instanceof GridLayoutManager)
    {
        final GridLayoutManager gridLayoutManager = (GridLayoutManager) layoutManager;
        final GridLayoutManager.SpanSizeLookup spanSizeLookup = gridLayoutManager.getSpanSizeLookup();

        gridLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup()
        {
            @Override
            public int getSpanSize(int position)
            {
                return callback.getSpanSize(gridLayoutManager, spanSizeLookup, position);
            }
        });
        gridLayoutManager.setSpanCount(gridLayoutManager.getSpanCount());
    }
}
 
源代码5 项目: SwipeRecyclerView   文件: SwipeRecyclerView.java
@Override
public void setLayoutManager(LayoutManager layoutManager) {
    if (layoutManager instanceof GridLayoutManager) {
        final GridLayoutManager gridLayoutManager = (GridLayoutManager)layoutManager;
        final GridLayoutManager.SpanSizeLookup spanSizeLookupHolder = gridLayoutManager.getSpanSizeLookup();

        gridLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
            @Override
            public int getSpanSize(int position) {
                if (mAdapterWrapper.isHeader(position) || mAdapterWrapper.isFooter(position)) {
                    return gridLayoutManager.getSpanCount();
                }
                if (spanSizeLookupHolder != null) {
                    return spanSizeLookupHolder.getSpanSize(position - getHeaderCount());
                }
                return 1;
            }
        });
    }
    super.setLayoutManager(layoutManager);
}
 
源代码6 项目: MVVM-JueJin   文件: WrapperUtils.java
public static void onAttachedToRecyclerView(RecyclerView.Adapter innerAdapter, RecyclerView recyclerView, final SpanSizeCallback callback)
{
    innerAdapter.onAttachedToRecyclerView(recyclerView);

    RecyclerView.LayoutManager layoutManager = recyclerView.getLayoutManager();
    if (layoutManager instanceof GridLayoutManager)
    {
        final GridLayoutManager gridLayoutManager = (GridLayoutManager) layoutManager;
        final GridLayoutManager.SpanSizeLookup spanSizeLookup = gridLayoutManager.getSpanSizeLookup();

        gridLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup()
        {
            @Override
            public int getSpanSize(int position)
            {
                return callback.getSpanSize(gridLayoutManager, spanSizeLookup, position);
            }
        });
        gridLayoutManager.setSpanCount(gridLayoutManager.getSpanCount());
    }
}
 
源代码7 项目: ItemDecorationDemo   文件: GridSpaceDecoration.java
protected boolean isLastRaw(int pos) {
    if (mChildCount <= 0) {
        return false;
    }
    GridLayoutManager.SpanSizeLookup lookup = mManager.getSpanSizeLookup();
    return lookup.getSpanGroupIndex(pos, mSpanCount) == lookup.getSpanGroupIndex(mChildCount - 1, mSpanCount);
}
 
源代码8 项目: AccountBook   文件: FlexibleDividerDecoration.java
/**
 * Returns a group index for GridLayoutManager.
 * for LinearLayoutManager, always returns position.
 *
 * @param position current view position to draw divider
 * @param parent   RecyclerView
 * @return group index of items
 */
private int getGroupIndex(int position, RecyclerView parent) {
    if (parent.getLayoutManager() instanceof GridLayoutManager) {
        GridLayoutManager layoutManager = (GridLayoutManager) parent.getLayoutManager();
        GridLayoutManager.SpanSizeLookup spanSizeLookup = layoutManager.getSpanSizeLookup();
        int spanCount = layoutManager.getSpanCount();
        return spanSizeLookup.getSpanGroupIndex(position, spanCount);
    }

    return position;
}
 
源代码9 项目: NoPaginate   文件: Paginate.java
/**
 * This method unsubscribe observer and change listeners reference to null
 * for avoid memory leaks.
 */
@Deprecated
public void unbind() {
    if (recyclerView.getLayoutManager() instanceof LinearLayoutManager) {
        wrapperAdapter.unbind();
        userAdapter.unregisterAdapterDataObserver(wrapperAdapterObserver);
        recyclerView.setAdapter(userAdapter);

    } else if (recyclerView.getLayoutManager() instanceof GridLayoutManager && wrapperSpanSizeLookup != null) {
        GridLayoutManager.SpanSizeLookup spanSizeLookup = wrapperSpanSizeLookup.getWrappedSpanSizeLookup();
        ((GridLayoutManager) recyclerView.getLayoutManager()).setSpanSizeLookup(spanSizeLookup);
    }
}
 
源代码10 项目: NoPaginate   文件: NoPaginate.java
/**
 * This method unsubscribe observer and change listeners reference to null
 * for avoid memory leaks.
 */
public void unbind() {
    recyclerView.removeOnScrollListener(scrollListener);

    if (recyclerView.getLayoutManager() instanceof LinearLayoutManager) {
        wrapperAdapter.unbind();
        userAdapter.unregisterAdapterDataObserver(wrapperAdapterObserver);
        recyclerView.setAdapter(userAdapter);

    } else if (recyclerView.getLayoutManager() instanceof GridLayoutManager && wrapperSpanSizeLookup != null) {
        GridLayoutManager.SpanSizeLookup spanSizeLookup = wrapperSpanSizeLookup.getWrappedSpanSizeLookup();
        ((GridLayoutManager) recyclerView.getLayoutManager()).setSpanSizeLookup(spanSizeLookup);
    }
}
 
源代码11 项目: NoPaginate   文件: WrapperSpanSizeLookup.java
public WrapperSpanSizeLookup(GridLayoutManager.SpanSizeLookup gridSpanSizeLookup,
                             BaseGridLayoutManagerItem loadingListItemSpanLookup,
                             WrapperAdapter wrapperAdapter) {
    this.wrappedSpanSizeLookup = gridSpanSizeLookup;
    this.loadingListItemSpanLookup = loadingListItemSpanLookup;
    this.wrapperAdapter = wrapperAdapter;
}
 
源代码12 项目: LightAdapter   文件: LightAdapter.java
public GridLayoutManager.SpanSizeLookup spanSizeLookup(int headerSpan, int footerSpan) {
    return new AdapterSpanSizeLookup(headerSpan, footerSpan);
}
 
源代码13 项目: CoordinatorLayoutExample   文件: WrapperUtils.java
int getSpanSize(GridLayoutManager layoutManager, GridLayoutManager.SpanSizeLookup
oldLookup, int position);
 
public GridLayoutManager.SpanSizeLookup getWrapper() {
    return wrapper;
}
 
源代码15 项目: uPods-android   文件: AutofitRecyclerView.java
public void setSpanSizeLookup(GridLayoutManager.SpanSizeLookup spanSizeLookup) {
    manager.setSpanSizeLookup(spanSizeLookup);
}
 
/**
 * 设置某个位置的item的跨列程度,这里和GridLayoutManager有点不一样,
 * 如果你设置某个位置的item的span>1了,那么这个item会占据所有列
 *
 * @param spanSizeLookup instance to be used to query number of spans
 *                       occupied by each item
 */
public void setSpanSizeLookup(GridLayoutManager.SpanSizeLookup spanSizeLookup) {
    mSpanSizeLookup = spanSizeLookup;
}
 
源代码17 项目: Pas   文件: DStaggeredGridLayoutManager.java
public void setSpanSizeLookup(GridLayoutManager.SpanSizeLookup spanSizeLookup) {
    mSpanSizeLookup = spanSizeLookup;

}
 
源代码18 项目: SmartChart   文件: WrapperUtils.java
int getSpanSize(GridLayoutManager layoutManager, GridLayoutManager.SpanSizeLookup oldLookup, int position); 
源代码19 项目: PocketEOS-Android   文件: WrapperUtils.java
int getSpanSize(GridLayoutManager layoutManager, GridLayoutManager.SpanSizeLookup oldLookup, int position); 
源代码20 项目: Bailan   文件: WrapperUtils.java
int getSpanSize(GridLayoutManager layoutManager, GridLayoutManager.SpanSizeLookup oldLookup, int position);