我正在将GridLayoutManager与2个单元格一起使用,并且对于某些单元格,我希望span成为一个单元格,因此我尝试使用setSpanSizeLookup,但它不起作用。我尝试为所有位置返回跨度计数1,但是仍然出现两个单元格而不是一个。
以下是我的代码
gridLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
@Override
public int getSpanSize(int position) {
return 1;
}
});
recyclerView.setLayoutManager(gridLayoutManager);
有什么原因不起作用?
最佳答案
代替
return 1;
至
return 2;
这指定您将2个单元格划分为1个单元格。
代码
这是我的代码,用于跨越2个特定位置的单元格
GridLayoutManager glm=new GridLayoutManager(mContext,2);
glm.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
@Override
public int getSpanSize(int position) {
switch(categoryAdapter.getItemViewType(position)) {
case 1:
return 2;
default:
return 1;
}
}
});
mRecyclerViewCategory.setLayoutManager(glm);
如何在回收站适配器中定义案例跨度
@Override
public int getItemViewType(int position) {
if(position==[your_specific_postion_where_to_span]){
return 1;
}
return super.getItemViewType(position);
}