使用GridLayoutManager(RecyclerView)将最后一个网格设置为全宽

Sar*_*Sar 4 android gridlayoutmanager android-recyclerview

我使用RecyclerViewwith GridLayoutManager来显示网格图案中的一些项目.它运行良好并在网格内的2列中显示项目.

但是当项目的数量是奇数时,我希望最后一项必须是全宽(与宽度相同RecyclerView).

无论如何使用GridLayoutManager或我必须建立自定义设计?

请帮忙.

Par*_* P. 10

你可以使用layoutManager.setSpanSizeLookup方法GridLayoutManager

这是使用它的方法

final GridLayoutManager layoutManager = new GridLayoutManager(context, 2);
        layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
        layoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
            @Override
            public int getSpanSize(int position) {
                if (mAdapter != null) {
                    switch (mAdapter.getItemViewType(position)) {
                        case 1:
                            return 1;
                        case 0:
                            return 2; //number of columns of the grid
                        default:
                            return -1;
                    }
                } else {
                    return -1;
                }
            }
        });
Run Code Online (Sandbox Code Playgroud)

现在你必须确定viewType你的adapter

@Override
public int getItemViewType(int position) {
    return (isLastLogic) ? 0 : 1; // If the item is last, `itemViewType` will be 0
}
Run Code Online (Sandbox Code Playgroud)

继续构建更好的应用!