2016-04-05 40 views
0

ある位置から始めることができますか?位置指定後にItemDecorationを使用してRecyclerViewをデコレートする

私の場合装飾ピクセル要素間の水平方向の間隔である:

public class HorizontalSpaceItemDecoration extends RecyclerView.ItemDecoration { 

    private final int mHorizontalSpaceHeight; 

    public HorizontalSpaceItemDecoration(int mHorizontalSpaceHeight) { 
     this.mHorizontalSpaceHeight = mHorizontalSpaceHeight; 
    } 

    @Override 
    public void getItemOffsets(Rect outRect, View view, RecyclerView parent, 
          RecyclerView.State state) { 
     outRect.bottom = mHorizontalSpaceHeight; 
    } 
} 

したがって、最初の行の後、この間隔を追加し、第二の一方から起動しないことが可能ですか?

答えて

1

は、単にのような装飾からの第1項目を除外し、

public class HorizontalSpaceItemDecoration extends RecyclerView.ItemDecoration { 

    private final int mHorizontalSpaceHeight; 

    public HorizontalSpaceItemDecoration(int mHorizontalSpaceHeight) { 
     this.mHorizontalSpaceHeight = mHorizontalSpaceHeight; 
    } 

    @Override 
    public void getItemOffsets(Rect outRect, View view, RecyclerView parent, 
          RecyclerView.State state) { 
     int itemPosition = parent.getChildPosition(view); 
     if(itemPosition>0){ //here we are excluding 1st item 
      outRect.bottom = mHorizontalSpaceHeight; 
     } 
    } 
} 
+0

が魅力のように働きました。ありがとう! – AnZ

関連する問題