以下是一个示例代码,演示如何在水平的RecyclerView中绘制小的居中圆形分隔符:
首先,在您的RecyclerView的适配器中创建一个继承自ItemDecoration的自定义分隔符类:
public class DividerItemDecoration extends RecyclerView.ItemDecoration {
private int dividerSize;
private Paint dividerPaint;
public DividerItemDecoration(Context context) {
dividerSize = context.getResources().getDimensionPixelSize(R.dimen.divider_size);
dividerPaint = new Paint();
dividerPaint.setColor(ContextCompat.getColor(context, R.color.divider_color));
dividerPaint.setStrokeWidth(dividerSize);
}
@Override
public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
super.getItemOffsets(outRect, view, parent, state);
outRect.right = dividerSize;
}
@Override
public void onDraw(Canvas canvas, RecyclerView parent, RecyclerView.State state) {
super.onDraw(canvas, parent, state);
int childCount = parent.getChildCount();
int left, right, top, bottom;
for (int i = 0; i < childCount - 1; i++) {
View child = parent.getChildAt(i);
left = child.getRight();
right = left + dividerSize;
top = child.getTop() + (child.getHeight() - dividerSize) / 2;
bottom = child.getBottom() - (child.getHeight() - dividerSize) / 2;
canvas.drawRect(left, top, right, bottom, dividerPaint);
}
}
}
然后,在您的Activity或Fragment中,将这个分隔符应用到RecyclerView上:
RecyclerView recyclerView = findViewById(R.id.recyclerView);
recyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false));
recyclerView.addItemDecoration(new DividerItemDecoration(this));
请注意,上述代码中的R.dimen.divider_size
和R.color.divider_color
需要根据您的项目中的实际资源ID进行调整。您可以在dimens.xml和colors.xml文件中定义这些资源。
最后,确保您的RecyclerView的适配器中有足够的项目来绘制分隔符。在示例代码中,我们使用了childCount - 1
来避免在最后一个项目之后绘制分隔符。
希望这个示例对您有所帮助!