我使用RecyclerView
GridLayoutManager
来显示网格模式中的一些项目。它工作正常并在网格内的2列中显示项目。
但是当项目数是奇数时,我希望最后一项必须是全宽(与RecyclerView
的宽度相同)。
无论如何使用GridLayoutManager
或者我必须构建自定义设计吗?
请帮忙。
答案 0 :(得分: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;
}
}
});
现在您必须确定viewType
adapter
@Override
public int getItemViewType(int position) {
return (isLastLogic) ? 0 : 1; // If the item is last, `itemViewType` will be 0
}
继续构建更好的应用!!