RecyclerView divider

档添加RecyclerView的Divider时候,要加入距离,不然除了第一Item之后的item 设置的距离会有问题。

正解如下。

1,

//set recycler view

recyclerView= (RecyclerView)v.findViewById(R.id.recycler_view);

recyclerView.setLayoutManager(newLinearLayoutManager(getActivity()));

//adding custom divider

recyclerView.addItemDecoration(newSimpleDividerItemDecoration(getContext()));

2,

public classSimpleDividerItemDecorationextendsRecyclerView.ItemDecoration {

privateDrawablemDivider;

publicSimpleDividerItemDecoration(Context context) {

mDivider= context.getResources().getDrawable(R.drawable.divider);

}

@Override

public voidonDrawOver(Canvas c, RecyclerView parent, RecyclerView.State state) {

intleft = parent.getPaddingLeft();

intright = parent.getWidth() - parent.getPaddingRight();

intchildCount = parent.getChildCount();

for(inti =0; i < childCount; i++) {

View child = parent.getChildAt(i);

RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child.getLayoutParams();

inttop = child.getBottom() + params.bottomMargin;

intbottom = top +mDivider.getIntrinsicHeight();mDivider.setBounds(left, top, right, bottom);

mDivider.draw(c);

}

}

//adding space

@Override

public voidgetItemOffsets(Rect outRect, View view, RecyclerView parent,

RecyclerView.State state) {

outRect.bottom= (int) ZR.convertDpToPx(view.getContext(),6);

}

}

3,divider.xml

<shape xmlns:android="http://scheme.android.com/apk/res/android"

android:shape="rectangle">

<solid android:clor="#f2f2f2"/>

<size android:height="6dp"/>

</shape>

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容