效果:

MDRvActivity:
public class MDRvActivity extends AppCompatActivity {
String imgur2="http://images.rednet.cn/ArticleImage/2017/04/25/201716483007449.jpg";
String imgurl3="http://images.rednet.cn/ArticleImage/2017/04/25/2017167258494983.jpg";
String geyan="学历代表过去,能力代表现在,学习力代表将来";private RecyclerView mRecyclerView;private RecyclerView.Adapter mAdapter;private RecyclerView.LayoutManager mLayoutManager;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.recycle_mdrv);initData();initView();}private void initData() {mLayoutManager = new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false);mAdapter = new MyAdapter(getData());}private void initView() {//RecyclerView的控件id,获取RecyclerView的控件mRecyclerView = (RecyclerView) findViewById(R.id.my_recycler_view);// 设置布局管理器
        mRecyclerView.setLayoutManager(mLayoutManager);// 设置adapter
        mRecyclerView.setAdapter(mAdapter);mRecyclerView.addItemDecoration(new MyDividerItemDecoration(this, LinearLayoutManager.VERTICAL));}/*  private ArrayList<NewsListData> getData() {ArrayList<NewsListData> data = new ArrayList<NewsListData>();for(int i = 0; i < 10; i++) {NewsListData newsListData=new NewsListData(imgur2,geyan+i,"10-11推荐");data.add(newsListData);}return data;}*/protected List getData(){List mDatas = new ArrayList<String>();for (int i = 'A'; i < 'z'; i++){mDatas.add("" + (char) i);}return mDatas;}}

MyAdapter:
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder>{private List<String> mData;public MyAdapter(List data) {this.mData = data;}public void updateData(List data) {this.mData = data;notifyDataSetChanged();}@Overridepublic ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {// 实例化展示的viewView v = LayoutInflater.from(parent.getContext()).inflate(R.layout.my, parent, false);// 实例化viewholderViewHolder viewHolder = new ViewHolder(v);return viewHolder;}@Overridepublic void onBindViewHolder(ViewHolder holder, int position) {// 绑定数据
        holder.mTv.setText((CharSequence) mData.get(position));}@Overridepublic int getItemCount() {return mData == null ? 0 : mData.size();}public static class ViewHolder extends RecyclerView.ViewHolder {TextView mTv;public ViewHolder(View itemView) {super(itemView);mTv = (TextView) itemView.findViewById(R.id.item_tv);}}
}

MyDividerItemDecoration添加分割线:
public class MyDividerItemDecoration 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 MyDividerItemDecoration(Context context, int orientation) {// 获取默认主题的属性final TypedArray a = context.obtainStyledAttributes(ATTRS);mDivider = a.getDrawable(0);a.recycle();setOrientation(orientation);}@Overridepublic void onDraw(Canvas c, RecyclerView parent, RecyclerView.State state) {// 绘制间隔if (mOrientation == VERTICAL_LIST) {drawVertical(c, parent);} else {drawHorizontal(c, parent);}}@Overridepublic void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {if (mOrientation == VERTICAL_LIST) {outRect.set(0, 0, 0, mDivider.getIntrinsicHeight());} else {outRect.set(0, 0, mDivider.getIntrinsicWidth(), 0);}}private void setOrientation(int orientation) {if (orientation != HORIZONTAL_LIST && orientation != VERTICAL_LIST) {throw new IllegalArgumentException("invalid orientation");}mOrientation = orientation;}/*** 绘制间隔*/private 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);final RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child.getLayoutParams();final int top = child.getBottom() + params.bottomMargin +Math.round(ViewCompat.getTranslationY(child));final int bottom = top + mDivider.getIntrinsicHeight();mDivider.setBounds(left, top, right, bottom);mDivider.draw(c);}}/*** 绘制间隔*/private 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 +Math.round(ViewCompat.getTranslationX(child));final int right = left + mDivider.getIntrinsicHeight();mDivider.setBounds(left, top, right, bottom);mDivider.draw(c);}}
}

recycle_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="500px"android:layout_marginTop="100px"tools:ignore="MissingDefaultResource"><android.support.v7.widget.RecyclerViewandroid:id="@+id/my_recycler_view"android:scrollbars="vertical"android:layout_width="match_parent"android:layout_height="match_parent"/>
</LinearLayout>

item.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout   xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="50dp"tools:ignore="MissingDefaultResource">
<TextViewandroid:id="@+id/item_tv"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center"/>
</LinearLayout>

转载于:https://www.cnblogs.com/goodshred/p/9777398.html

recycleView简单用法相关推荐

  1. 反编译工具jad简单用法

    反编译工具jad简单用法 下载地址: [url]http://58.251.57.206/down1?cid=B99584EFA6154A13E5C0B273C3876BD4CC8CE672& ...

  2. QCustomPlot的简单用法总结

    QCustomPlot的简单用法总结 第一部分:QCustomPlot的下载与安装 第二部分:QCustomPlot在VS2013+QT下的使用 QCustomPlot的简单用法总结    写在前面, ...

  3. python matplotlib 简单用法

    python matplotlib 简单用法 具体内容请参考官网 代码 import matplotlib.pyplot as plt import numpy as np # 支持中文 plt.rc ...

  4. Windump网络命令的简单用法

    Windump网络命令的简单用法 大家都知道,unix系统下有个tcpdump的抓包工具,非常好用,是做troubleshooting的好帮手.其实在windows下也有一个类似的工作,叫windum ...

  5. Android TabLayout(选项卡布局)简单用法实例分析

    本文实例讲述了Android TabLayout(选项卡布局)简单用法.分享给大家供大家参考,具体如下: 我们在应用viewpager的时候,经常会使用TabPageIndicator来与其配合.达到 ...

  6. shell expect的简单用法

    为什么需要expect?     我们通过Shell可以实现简单的控制流功能,如:循环.判断等.但是对于需要交互的场合则必须通过人工来干预,有时候我们可能会需要实现和交互程序如 telnet服务器等进 ...

  7. Shellz中awk的简单用法

    其实shell脚本的功能常常被低估.在实际应用中awk sed 等用法可以为shell提供更为强大的功能.下面我们将一下awk调用的简单方法进行了总结.方便同学们学习: awk的简单用法: 第一种调用 ...

  8. python装饰器实例-Python装饰器原理与简单用法实例分析

    本文实例讲述了Python装饰器原理与简单用法.分享给大家供大家参考,具体如下: 今天整理装饰器,内嵌的装饰器.让装饰器带参数等多种形式,非常复杂,让人头疼不已.但是突然间发现了装饰器的奥秘,原来如此 ...

  9. python装饰器实例-Python装饰器简单用法实例小结

    本文总结分析了Python装饰器简单用法.分享给大家供大家参考,具体如下: 装饰器在python中扮演着很重要的作用,例如插入日志等,装饰器可以为添加额外的功能同时又不影响业务函数的功能. 比如,运行 ...

最新文章

  1. 华硕服务器第三届“IT硬件平台搭建大赛”获奖方案
  2. flink 三种时间机制_360深度实践:Flink 与 Storm 协议级对比
  3. 2、Java Swing JFrame和JPanel:窗口容器和面板容器
  4. 信号与系统matlab课设报告,MATLAB信号与系统实验报告
  5. post多个参数_关于HTTP GET和POST的区别
  6. 智能机器人及其应用ppt课件_一文了解!伺服系统机理及其在工业机器人等领域的应用...
  7. windows 禁用ipv6服务_Win10如何关闭IPV6?Win10禁用IPv6的方法
  8. Linux 目录配置标准:FHS
  9. node php go python_PHP 可能在未来十年内消失?
  10. hbase动态更改行键设计_谈笑间学会Hbase Rowkey设计
  11. log4net配置说明及使用方法
  12. 进程和线程不属于标准c语言,经典C语言面试题6:进程与线程的关系和区别
  13. PCTFREEITLCONSISTANT READ
  14. 计蒜客-最大子阵列 / NYOJ题目44-子串和
  15. python贪吃蛇手机版代码_Python贪吃蛇简单的代码
  16. 彻底搞懂瓦片地图拼接原理并附具体实现
  17. 蓝桥秘密冲刺计划(9.17)年号字串
  18. 蓝桥杯 算法训练 调和数列问题
  19. php 硬盘序号_怎么查看电脑硬盘序列号
  20. 计算机 上的图片怎样加密码,高手加密法之利用图片给电脑加密新招

热门文章

  1. Centos7 合盖不休眠
  2. 国产手机厂商2023,向高质量发展进发
  3. d3.js 旋转图形_行测答题技巧——图形推理中的“延伸规律”
  4. 总结_两周学习情况简谈
  5. Markdown 目录
  6. QT点击信号怎么获取到是哪个对象点击的
  7. 使用HistCite进行文献引用分析
  8. 文献引文分析利器HistCite使用教程(附精简易用免安装Pro版本下载)
  9. dhcp服务器开关自动选哪个好,dhcp 是什么应用?应该开启还是关闭?
  10. 在线教育遭遇瓶颈,扣丁引领教育O2O时代