我正在将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);
}

10-07 18:09