Android的RecyclerView

简介

RecyclerView是support-v7中用来替换ListView的组件。RecyclerView 小组件比 ListView 更高级且更具灵活性。 此小组件是一个用于显示庞大数据集的容器,可通过保持有限数量的视图进行非常有效的滚动操作。 如果您有数据集合,其中的元素将因用户操作或网络事件而发生改变,请使用 RecyclerView 小组件。

使用方法

  • 如果要使用RecyclerView,首先要添加support-v7的支持。
  • 打开Project Structure选项,在Dependencies添加RecyclerView-v7库,之后就可以在程序中使用RecyclerView:
public class MainActivity extends Activity {

    private RecyclerView rv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        rv = new RecyclerView(this);

        setContentView(rv);
...
  • 设置RecyclerView的布局:
rv.setLayoutManager(new LinearLayoutManager(this));

RecyclerView 提供这些内置布局管理器:

    • LinearLayoutManager 以垂直或水平滚动列表方式显示项目。
    • GridLayoutManager 在网格中显示项目。
    • StaggeredGridLayoutManager 在分散对齐网格中显示项目。
//		rv.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false));
//		rv.setLayoutManager(new GridLayoutManager(this, 2));
//		rv.setLayoutManager(new StaggeredGridLayoutManager(3, StaggeredGridLayoutManager.VERTICAL));  
  • 接着要给RecyclerView添加Adapter,这个Adapter也需要自定义。在这个Adapter中需要定义一个类,继承自RecyclerView.ViewHolder:
class ViewHolder extends RecyclerView.ViewHolder {
        private View root;
        private TextView tvTitle, tvContent;

        public ViewHolder(View root) {
            super(root);

            tvTitle = (TextView) root.findViewById(R.id.tvTitle);
            tvContent = (TextView) root.findViewById(R.id.tvContent);

        }

        public TextView getTvContent() {
            return tvContent;
        }

        public TextView getTvTitle() {
            return tvTitle;
        }
    }
  • 并作为onCreateViewHolder的返回值,这个函数表示每一项的View:
	@Override
	public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
		return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.list_cell, null));
	}
  • 接下来重写onBindViewHolder, 这个函数用来RecylerView显示每一项的内容的时候调用。
	@Override
	public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
		ViewHolder vh = (ViewHolder) holder;
		CellData cd = data[position];
		vh.getTvTitle().setText(cd.title);
		vh.getTvContent().setText(cd.content);
	}
  •   并提供这个数组,就可以显示了:
private CellData[] data = new CellData[]{......}

  

时间: 2024-11-03 00:31:59

Android的RecyclerView的相关文章

Android 自定义RecyclerView 实现真正的Gallery效果

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38173061 ,本文出自:[张鸿洋的博客] 上一篇博客我使用自定义HorizontalScrollView写了一个具有HorizontalScrollView效果和ViewPager特性的横向图片轮播,详见:Android 自定义 HorizontalScrollView 打造再多图片(控件)也不怕 OOM 的横向滑动效果.其实制作横向滚动的不得不说另一个控件,就是Google

Android中RecyclerView嵌套RecyclerView或嵌套ListView

Android中RecyclerView嵌套RecyclerView或嵌套ListView

Android的RecyclerView的使用

Android推出RecyclerView的时间不算短了,一直没有具体去了解.前段时间公司做代码优化,用到这个.具体了解之后发现其功能确实强大.下面来基本解释RecyclerView控件 RecyclerView干啥用的? 可以理解为效率更高的ListView和GridView,而且功能更强大.最关键的一个地方,貌似是听说在Adapter中复用之前已经产生的item,这个估计得查看内存方可以看得清楚. 使用RecyclerView,我们需要了解一下三个元素 1.RecyclerView.Adap

[Android]使用RecyclerView替代ListView(三)

以下内容为原创,转载请注明: 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/4268097.html  这次来使用RecyclerView实现PinnedListView的效果,效果很常见: 开发的代码建立在上一篇([Android]使用RecyclerView替代ListView(二):http://www.cnblogs.com/tiantianbyconan/p/4242541.html)基础之上. 修改布局如下: 1 <?xml vers

Android实现RecyclerView自定义列表、点击事件以及下拉刷新

Android使用RecyclerView 1. 什么是RecyclerView RecyclerView 是 Android-support-v7-21 版本中新增的一个 Widgets,官方对于它的介绍则是:RecyclerView 是 ListView 的升级版本,更加先进和灵活. 简单来说就是:RecyclerView是一种新的视图组,目标是为任何基于适配器的视图提供相似的渲染方式.它被作为ListView和GridView控件的继承者,在最新的support-V7版本中提供支持. 2.

Android实现RecyclerView的下拉刷新和上拉加载更多

Android实现RecyclerView的下拉刷新和上拉加载更多 原文地址:https://www.cnblogs.com/zhujiabin/p/8206176.html

【Android】RecyclerView详解(一)

1.介绍 RecyclerView是比 ListView 更高级且更具灵活性的组件. 此组件是一个用于显示庞大数据集的容器,可通过保持有限数量的视图进行非常有效的滚动操作. 如果您有数据集合,其中的元素将因用户操作或网络事件而发生改变,请使用 RecyclerView 小组件. RecyclerView使用起来很方便因为它: 提供了一种插拔式的体验,高度的解耦,异常的灵活使用; 显示的样式更丰富包括水平,竖直,Grid,瀑布显示方式; 可以通过ItemDecoration自定义Item间的间隔;

Android之RecyclerView(一)

概述 RecyclerView 是一个 ViewGroup,它用于渲染任何基于适配器的 View.它被官方定义为 ListView 和 GridView 的取代者,是在 Support V7 包中引入的.使用该组件的一个理由是:它有一个更易于扩展的框架,尤其是它提供了横向和纵向两个方向滚动的能力.当数据集合根据用户的操作或网络状态的变化而变化时,你很需要这个控件. 要使用 RecyclerView,需要以下的几个元素: RecyclerView.Adapter :使用RecyclerView之前

[Android]使用RecyclerView替代ListView(一)

以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/4232560.html RecyclerView是一个比ListView更灵活的一个控件,以后可以直接抛弃ListView了.具体好在哪些地方,往下看就知道了. 首先我们来使用RecyclerView来实现ListView的效果,一个滚动列表,先看下效果图(除了有动画之外,没什么特别--): 每个item的布局如下: <?xml version="1.0&

Android之 RecyclerView,CardView 详解和相对应的上拉刷新下拉加载

随着 Google 推出了全新的设计语言 Material Design,还迎来了新的 Android 支持库 v7,其中就包含了 Material Design 设计语言中关于 Card 卡片概念的实现 -- CardView.RecyclerView也是谷歌V7包下新增的控件,用来替代ListView的使用,在RecyclerView标准化了ViewHolder类似于ListView中convertView用来做视图缓存. RecyclerView的优点就是,他可以通过设置LayoutMan