RecyclerView 添加 FooterView 时如果是GridLayoutManager 处理方法

/**
 * 用来处理 如果是Footer 是 GridView 的情况下 最后占一个 gridview item
 */
@Override
public void onAttachedToRecyclerView(RecyclerView recyclerView) {
    super.onAttachedToRecyclerView(recyclerView);
    RecyclerView.LayoutManager manager = recyclerView.getLayoutManager();

    if (manager instanceof GridLayoutManager) {
        final GridLayoutManager gridManager = ((GridLayoutManager) manager);
        gridManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
            @Override
            public int getSpanSize(int position) {
                // 如果当前是footer的位置,那么该item占据2个单元格,正常情况下占据1个单元格
                return getItemViewType(position) == FOOTER ? gridManager.getSpanCount() : 1;
            }
        });
    }
}

猜你喜欢

转载自blog.csdn.net/u011139062/article/details/80811418