思路一:
继承ItemDecoration,自定义。
public class SimpleDividerItemDecoration extends RecyclerView.ItemDecoration {
private Drawable mDivider;
private int mDividerHeight;
public SimpleDividerItemDecoration(Context context, int mDividerHeight) {
this(context, null, mDividerHeight);
}
public SimpleDividerItemDecoration(Context context, Drawable mDivider, int mDividerHeight) {
if (mDivider == null) {
this.mDivider = ContextCompat.getDrawable(context, R.drawable.line_divider);
} else {
this.mDivider = mDivider;
}
this.mDividerHeight = mDividerHeight;
}
@Override
public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
super.getItemOffsets(outRect, view, parent, state);
outRect.set(0, 0, 0, mDividerHeight);
}
@Override
public void onDrawOver(Canvas c, RecyclerView parent, RecyclerView.State state) {
super.onDrawOver(c, parent, state);
int left = parent.getPaddingLeft();
int right = parent.getWidth() - parent.getPaddingRight();
int childCount = parent.getChildCount();
for (int i = 0; i < childCount; i++) {
View child = parent.getChildAt(i);
RecyclerView.LayoutParams layoutParams = (RecyclerView.LayoutParams) child.getLayoutParams();
int top = child.getBottom() + layoutParams.bottomMargin;
int bottom = top + mDividerHeight;
mDivider.setBounds(left, top, right, bottom);
mDivider.draw(c);
}
}
}
line_divider.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<size
android:width="1dp"
android:height="1dp" />
<solid android:color="#4000"></solid>
</shape>
思路二 :
直接在条目布局里画一个view。
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#44000000" />