目录
1. 下划线
ListView
自带 item下划线,recycleView
不带下划线
实现recycleView的下划线
继承RecyclerView.ItemDecoration
类,本质上就是计算下滑线位置,画矩形作为线
public class MyRecyclerViewItemDecoration extends RecyclerView.ItemDecoration {
private Paint paint;
private Path path;
private Drawable drawable;
int height;
public MyRecyclerViewItemDecoration(Context applicationContext, int orientation) {
if (orientation != LinearLayoutManager.VERTICAL
&& orientation != LinearLayoutManager.HORIZONTAL) {
throw new IllegalArgumentException(" 参数异常 ");
}
int[] ATTRS = new int[]{
android.R.attr.listDivider};
final TypedArray array =
applicationContext.obtainStyledAttributes(ATTRS);
drawable = array.getDrawable(0);
array.recycle();
height = drawable.getIntrinsicHeight();
initObject();
}
private void initObject() {
paint = new Paint();
paint.setColor(Color.BLACK);
path = new Path();
path.reset();
}
@Override
public void onDraw(@NonNull Canvas c, @NonNull RecyclerView parent, @NonNull RecyclerView.State state) {
final int left = parent.getPaddingLeft();//获取分割线的左边距,即RecyclerView的padding值
final int right = parent.getMeasuredWidth()
- parent.getPaddingRight();//分割线右边距
final int childSize = parent.getChildCount();
//遍历所有item view,为它们的下方绘制分割线
for