GridLayoutManager setSpanSizeLookup不起作用

amo*_*the 4 android android-support-library gridlayoutmanager android-recyclerview

我正在使用带有2个单元格的GridLayoutManager,对于某些单元格,我希望span为1,所以我尝试使用setSpanSizeLookup但它不起作用.我尝试为所有位置返回跨度计数1,但仍然出现两个单元而不是一个.

以下是我的代码

gridLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
        @Override
        public int getSpanSize(int position) {
            return 1;
        }
    });
    recyclerView.setLayoutManager(gridLayoutManager);
Run Code Online (Sandbox Code Playgroud)

有什么原因导致它不起作用?

Abh*_*ngh 13

更换

return 1;
Run Code Online (Sandbox Code Playgroud)

return 2;
Run Code Online (Sandbox Code Playgroud)

这表明您正在将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);
Run Code Online (Sandbox Code Playgroud)

如何在Recycler Adapter中定义案例范围

@Override
public int getItemViewType(int position) {
    if(position==[your_specific_postion_where_to_span]){
        return 1;
    }
    return super.getItemViewType(position);
}
Run Code Online (Sandbox Code Playgroud)