RecyclerView下划线
来源:互联网 发布:nginx lua 写入txt 编辑:程序博客网 时间:2024/05/16 18:20
public class SpacesItemDecoration extends RecyclerView.ItemDecoration{ private int dividerHeight; private Paint paint; public SpacesItemDecoration(Context context) { dividerHeight = context.getResources().getDimensionPixelSize(R.dimen.margin); paint=new Paint(); paint.setColor(context.getResources().getColor(R.color.colorAccent)); } @Override public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) { super.getItemOffsets(outRect, view, parent, state); /** * 类似加了一个bottom的padding */ outRect.bottom = dividerHeight; } @Override public void onDraw(Canvas c, RecyclerView parent, RecyclerView.State state) { super.onDraw(c, parent, state); int childCount = parent.getChildCount(); int left = parent.getPaddingLeft(); int right = parent.getWidth() - parent.getPaddingRight(); for (int i = 0; i < childCount - 1; i++) { View view = parent.getChildAt(i); float top = view.getBottom(); float bottom = view.getBottom() + dividerHeight; /** * 绘制的矩形也就是从,item的左上角,到右下角,类似于背景, * 正好显示出一个横线,就是getItemOffsets空出来的范围 */ c.drawRect(left, top, right, bottom, paint); } }}
MainActivity中设置下划线
RecyclerView re = (RecyclerView) findViewById(R.id.recyclerview); LinearLayoutManager layout = new LinearLayoutManager(this); re.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL_LIST));
DividerItemDecoration
public class DividerItemDecoration extends RecyclerView.ItemDecoration { private static final int[] ATTRS = new int[]{ android.R.attr.listDivider }; public static final int HORIZONTAL_LIST = LinearLayoutManager.HORIZONTAL; public static final int VERTICAL_LIST = LinearLayoutManager.VERTICAL; private Drawable mDivider; private int mOrientation; public DividerItemDecoration(Context context, int orientation) { final TypedArray a = context.obtainStyledAttributes(ATTRS); mDivider = a.getDrawable(0); a.recycle(); setOrientation(orientation); } public void setOrientation(int orientation) { if (orientation != HORIZONTAL_LIST && orientation != VERTICAL_LIST) { throw new IllegalArgumentException("invalid orientation"); } mOrientation = orientation; } @Override public void onDraw(Canvas c, RecyclerView parent) { if (mOrientation == VERTICAL_LIST) { drawVertical(c, parent); } else { drawHorizontal(c, parent); } } public void drawVertical(Canvas c, RecyclerView parent) { final int left = parent.getPaddingLeft(); final int right = parent.getWidth() - parent.getPaddingRight(); final int childCount = parent.getChildCount(); for (int i = 0; i < childCount; i++) { final View child = parent.getChildAt(i); android.support.v7.widget.RecyclerView v = new android.support.v7.widget.RecyclerView(parent.getContext()); final RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child .getLayoutParams(); final int top = child.getBottom() + params.bottomMargin; final int bottom = top + mDivider.getIntrinsicHeight(); mDivider.setBounds(left, top, right, bottom); mDivider.draw(c); } } public void drawHorizontal(Canvas c, RecyclerView parent) { final int top = parent.getPaddingTop(); final int bottom = parent.getHeight() - parent.getPaddingBottom(); final int childCount = parent.getChildCount(); for (int i = 0; i < childCount; i++) { final View child = parent.getChildAt(i); final RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child .getLayoutParams(); final int left = child.getRight() + params.rightMargin; final int right = left + mDivider.getIntrinsicHeight(); mDivider.setBounds(left, top, right, bottom); mDivider.draw(c); } } @Override public void getItemOffsets(Rect outRect, int itemPosition, RecyclerView parent) { if (mOrientation == VERTICAL_LIST) { outRect.set(0, 0, 0, mDivider.getIntrinsicHeight()); } else { outRect.set(0, 0, mDivider.getIntrinsicWidth(), 0); } }}
阅读全文
0 0
- RecyclerView下划线
- 给Recyclerview添加下划线
- RecyclerView添加下划线
- android中RecyclerView添加下划线
- RecyclerView加下划线的工具类和用法
- 下划线
- 下划线
- 下划线
- RecyclerView之ItemDecoration在屏幕中增加下划线的一个小demo
- RecyclerView
- RecyclerView
- RecyclerView
- RecyclerView
- RecyclerView
- RecyclerView
- RecyclerView
- RecyclerView
- RecyclerView
- Parenthesis CSU
- CodeForces
- 一步一步的搭建Tomcat服务器 + servlet + android客户端
- debug查看dos加载汇编源程序到内存过程分析
- 洛谷 3379 最近公共祖先(LCA 倍增)
- RecyclerView下划线
- 怎么压缩解压打包文件???
- POJ
- 构造数据类型struct,共用体union,枚举类型enum,宏#define的区别
- idea安装配置SVN
- document.getElementsByClassName的封装,兼容ie8
- 【HPU 1414: Kick Ass】
- Java基础22
- 噩梦多校6。。HDU6103 Kirinriki(字符串,尺取法)