遇到的情况:

RecyclerView和RecyclerView上面的部件需要保持一点距离,但是给RecyclerView设置padding后发现item滚动时,padding部分不随之一起滚动。

目前想到的有三种

1.禁用RecyclerView滚动,再嵌套一个NestedScrollView(未测试)

2.给RecyclerView设置头部(测试可以,需要在合适的时机添加比较美观)

3.利用addItemDecoration()方法,添加分割线。(建议该方法)


import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Rect;
import android.support.v7.widget.RecyclerView;
import android.view.View;/*** Created by leiel on 2018/3/9 0009.*/public class SimpleDividerDecoration extends RecyclerView.ItemDecoration {private int dividerHeight;private Paint dividerPaint;public SimpleDividerDecoration(Context context) {dividerPaint = new Paint();dividerPaint.setColor(context.getResources().getColor(R.color.bg_gray));dividerHeight = context.getResources().getDimensionPixelSize(R.dimen.m1);}private int isF = 1;@Overridepublic void onDrawOver(Canvas c, RecyclerView parent, RecyclerView.State 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.getTop();float bottom = view.getTop() + dividerHeight;if (i == 0) {if (isF == 1) {view.setPadding(view.getPaddingLeft(), view.getPaddingTop() + 10,view.getPaddingRight(), view.getPaddingBottom());isF = 0;}c.drawRect(left, top, right, bottom + 10, dividerPaint);} elsec.drawRect(left, top, right, bottom, dividerPaint);}}}复制代码

参考链接:https://www.jianshu.com/p/b46a4ff7c10a(翻译)

转载于:https://juejin.im/post/5aa23ec5f265da239a5f6617

RecyclerView顶部添加padding的方法相关推荐

  1. 在Ubuntu 14.04 64bit中永久添加DNS的方法

    DNS信息是由/etc/resolv.conf提供的,它是每次开机时,由/sbin/resolvconf生成的 /etc/resolv.conf是/run/resolvconf/resolv.conf ...

  2. Android开发——RecyclerView特性以及基本使用方法(二)

    0.  前言 随着Android的发展,虽然ListView依旧重要,但RecyclerView确实越来越多的被大家使用.但显然并不能说RecyclerView就一定优于ListView,而是应该根据 ...

  3. ppt怎么加注解文字_PPT怎么在演示稿中添加批注的方法

    PPT怎么在演示稿中添加批注的方法 2017-10-24 16:46 责任编辑:老王啊 导读 / PPT如何在演示稿中添加批注?设计或制作PPT时,会遇到内容中需要特别解释或着重注意的地方,此时会用到 ...

  4. 如何右键菜单添加命令提示符_在右键菜单顶部添加过滤器命令

    如何右键菜单添加命令提示符 Do you spend lots of time in Excel tables, filtering the data, then clearing those fil ...

  5. Padding设置方法

    1级标题 padding的用法: 1: padding是长在内容和盒子之间的,在盒子内部.2:padding是为了调整 子元素 在 父元素里面位置关系.3:padding的特点:padding值会把盒 ...

  6. Win11系统添加信任软件方法分享

    Win11系统添加信任软件方法分享,有用户使用的电脑软件被系统提示了有危险存在,导致每次使用的时候都会有安全提示弹出来,那么这个情况怎么去将软件添加到信任区,让它不会出现危险提示呢?来看看以下的操作方 ...

  7. css里面li标签怎么加图片_分享三种给li标签添加图标的方法

    我们在页面布局时,经常会用到li标签,单独使用li标签比较单调,有时候为了页面效果,需要加入图片,那怎么在li标签中添加图片呢?这篇文章就和大家分享三种给li标签添加图标的方法,希望对你有用. 1.使 ...

  8. jsp ul设置滚动条_jquery实现Li滚动时滚动条自动添加样式的方法

    本文实例讲述了jquery实现Li滚动时滚动条自动添加样式的方法.分享给大家供大家参考.具体如下: 这里使用jquery实现当拖动滚动条的时候,Li滚动列表中的内容会自动随滚动条变化而下移,并自动添加 ...

  9. linux下添加路由的方法

    Linux中增加软路由的两种方法 第一种: route add -net 172.16.6.0 netmask 255.255.255.0 gw 172.16.2.254 dev eth0 /* 增加 ...

最新文章

  1. 刚搭建的linux环境的基本优化以及优化脚本---菜鸟初写
  2. DL之perceptron:利用perceptron感知机对股票实现预测
  3. 解决jquery版本冲突问题
  4. 使用面向对象(OO)的思想,实现循环输入多个会员的信息,根据会员编号,查找会员积分
  5. 前嗅ForeSpider教程:创建模板
  6. PMP读书笔记(第4章)
  7. linux c语言 电子相册,纯C语言开发(电子相册).doc
  8. poj 3304 Segments
  9. 三菱电机NC monitor 序列号申请
  10. 三星s10刷android原生,【极光ROM】-【三星S10E/S10/S10+ G97XX-9820】-【V12.0 Android-Q-TD1】...
  11. voa android tv,VoAACEncoder
  12. loadrunner-md5签名加密并转大写
  13. 面试常见的功能测试考试题关于测试方法的
  14. 动词的时态(Les temps du verbe )
  15. 《俄罗斯方块》项目简介
  16. SCORM 基础知识
  17. getcwd()和chdir()的用法 python
  18. 基于android的宠物救助站app
  19. 如何获取点击当前li元素的ID
  20. 轻松学习CAN总线系列---3.CAN数据遵循的格式

热门文章

  1. 龙腾15寸液晶屏M150GNN2 R1规格资料
  2. 直流电源纹波测量(示波器)
  3. 快手视频画质提升算法的探索和应用
  4. Mac安装--locust压力测试
  5. 数据科学中常见的9种距离度量方法(包括曼哈顿距离、欧氏距离、半正矢距离等)
  6. 跳一跳python刷分_微信跳一跳刷分脚本
  7. 惠普HP LaserJet Pro M405dw 打印机驱动
  8. 求数组中满足要求的元素和
  9. js写入指定html,js 指定位置插入html标签(可编辑div)
  10. 华侨大学计算机本科导师,华侨大学计算机科学与技术学院导师简介:彭淑娟