最近項(xiàng)目有個(gè)需求圾叼,大致就是:需要將列表中item居中
接下來自然是百度:setSpanSizeLookup,這個(gè)方法決定item占據(jù)了多少列寬。
SpanCount:每行的列數(shù),就是下圖GridLayoutManager的第二個(gè)參數(shù)
spanSize:item所占的列數(shù)
如:我每行最多兩列蜕琴,我需要第三個(gè)item占據(jù)一行,那么我就判斷當(dāng)position等于2時(shí)宵溅,spanSize為SpanCount凌简,我占據(jù)的列數(shù)等于總列數(shù),那么這個(gè)item就占據(jù)一行了
上代碼
final GridLayoutManager layoutManager = new GridLayoutManager(this, 2);
layoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
@Override
public int getSpanSize(int position) {
int spanSize = 0;
//spanSize的長度為item所占的列數(shù)层玲,最終的spanSize為spanCount/spanSize,結(jié)果才是真正的spanSize
if (mUserinfo.getData().size() == 3) {
spanSize = position == 2 ? layoutManager.getSpanCount() : 1;
Log.d(TAG, "getSpanSize: " + spanSize);
}
return spanSize;
}
});
layoutManager.setAutoMeasureEnabled(true);
recyclerView.setLayoutManager(layoutManager);
ArrayList<xxx> dataBeans = new ArrayList<>();
int userSize = mUserinfo.getData().size();
for (int i = 0; i < userSize; i++) {
...
}
Adapter adapter = new Adapter(R.layout.adapter_match_head, dataBeans);
recyclerView.setAdapter(adapter);
然鵝:他仍然是這個(gè)樣子的
木得法子号醉,繼續(xù)百度,然后找到了 這個(gè)
這個(gè)方法需要在設(shè)置Adapter之后才會(huì)啟用辛块,否則是無效的畔派,so,只需要將上方代碼的setAdapter方法移至 layoutManager.setSpanSizeLookup上方就OJBK了润绵,圖就不貼了线椰,第一張圖就是最終的結(jié)果圖,還有啥問題可以留言或者直接聯(lián)系我尘盼,至于現(xiàn)在憨愉,我要下班了哈哈哈