1
我一直沒能找到任何關於它的帖子...如何從RecyclerView的ItemDecoration類訪問LayoutManager?
我們有良好的老RecyclerView.ItemDecoration碼(從Suleiman's Mansonry Github project拍攝):
public class SpacesItemDecoration extends RecyclerView.ItemDecoration {
private final int mSpace;
public SpacesItemDecoration(int space) {
this.mSpace = space;
}
@Override
public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
outRect.left = mSpace;
outRect.right = mSpace;
outRect.bottom = mSpace;
// Add top margin only for the first item to avoid double space between items
if (parent.getChildAdapterPosition(view) == 0)
outRect.top = mSpace;
}
}
我想有套mSpace
條件(抵消/保證金),取決於RecyclerView中的當前LayoutManager。
例如:
if(/* LayoutManager is LinearLayoutManager*/){
//Set larger margin
}else{
//Set lower margin
}