Recyclerview使用flexibledivider处理分割线,如分割线的宽度,颜色,边距等,可以设置水平或竖直方向。 依赖库compile ‘com.yqritc:recyclerview-flexibledivider:1.4.0’ 使用方式:
让自己的Adapter implements FlexibleDividerDecoration. PaintProvider, HorizontalDividerItemDecoration. MarginProvider等,会需要复写几个方法来控制分割线的各种属性。
@Override public int dividerLeftMargin(int position, RecyclerView parent) { if (position == 1){//第一行左边距为0 return 0; } return 90;//其他行左边距为90 } @Override public int dividerRightMargin(int position, RecyclerView parent) { return 0;//右边距都为0 } @Override public Paint dividerPaint(int position, RecyclerView parent) { Paint paint = new Paint(); switch (position) { case 2: int red = ContextCompat.getColor(mContext, R.color.red); paint.setColor(red); paint.setStrokeWidth(16); break; default: int color = ContextCompat.getColor(mContext, R.color.divider); paint.setColor(color); paint.setAntiAlias(true); paint.setStrokeWidth(1); break; } return paint; }在adapter调用的地方
mAdapter = new MyAdapter(context); LinearLayoutManager linearLayoutManager = new LinearLayoutManager(context); linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL); recyclerview.setLayoutManager(linearLayoutManager); recyclerview.setAdapter(mAdapter); recyclerview.addItemDecoration(new HorizontalDividerItemDecoration.Builder(getContext()) .paintProvider(mAdapter) .marginProvider(mAdapter) .build());