我掙扎代碼這是因爲這裏的文檔很差。我想這是這樣的...
getSpanSize和getSpanIndex似乎一起工作。對我來說,我試圖在一個gridlayoutManager中插入一個pageViewer,該列表生成了兩列。所以有人喜歡定義:mGridLayout = new GridLayoutManager(getActivity(), 2);
//must be called before setLayoutManager is invoked
private void setNumOfColumnsForPageViewer(final FallCollectionRecyclerAdapter adapter) {
mGridLayout.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
@Override
public int getSpanSize(int position) {
if (adapter.getItemViewType(position) == MyRecyclerAdapter.TYPE_PAGE_VIEWER)
return 2; //some other form of item like a header, or whatever you need two spans for
else
return 1; //normal item which will take up the normal span you defined in the gridlayoutmanager constructor
}
@Override
public int getSpanIndex(int position, int spanCount) {
if (adapter.getItemViewType(position) == FallCollectionRecyclerAdapter.TYPE_PAGE_VIEWER)
return 1;//use a single span
else
return 2; //use two spans
}
});
mRecyclerView.setLayoutManager(mGridLayout);
}
我想是在即使使用2個跨度和和奇數位置1個跨度位置,但兩個跨度只得到一個被示出和離開網格空間用於第二列只有空!如果條件應該是'if(position%2!= 0){return 1};'其餘的代碼與上面的 –
@ NaszNjokaSr.just修改'getItemViewType'跨越所有奇數位置的1列 –
相同,我們希望所有職位的行爲都不是特定的 –