这篇文章给大家介绍Android 项目怎么使用RecyclerView实现一个点击事件,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
一、概述
随着Android L版本的发布,RecyclerView已经逐渐地取代了ListView,用来显示较多的数据集,RecyclerView相比ListView在性能上有了大幅度的提升,可以说RecyclerView是AbsListView的升级版本。RecyclerView自带了ViewHolder使用,与ListView缓存convertView不同的是,RecyclerView缓存的是ViewHolder,操作对象也是ViewHolder。虽然ListView也带有缓存convertView的功能,但是当使用ListView时,显示、缓存、回收、布局等都是耦合在一起的;而RecyclerView对其进行了解耦,操作更灵活,使得开发者可以更好的自定义各种各样的效果,另外RecyclerView假如了局部刷新。关系如下图所示:
二、基本使用
RecyclerView提供了下面几种角色
1.RecyclerView.Adapter 适配器
2.RecyclerView.LayoutManager 布局器,用于管理布局显示,官方提供以下几种方式
LinearLayoutManager 显示垂直或水平滚动的列表项
GridLayoutManager 以网格方式显示
StaggeredGridLayoutManager 以交错网格显示
同时,开发者也可以自定义LayoutManager,继承RecyclerView.LayoutManager。
Recycler.ItemDecoration 每个item附加的子视图,可用来绘制Divider,设置padding等
4.RecyclerView.ItemAnimator 负责添加、删除数据时的动画效果
具体的使用方法见 官方文档
项目中使用
Activity中
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); } private void initView() { recyclerView = (RecyclerView) findViewById(R.id.rv); // use this setting to improve performance if you know that changes // in content do not change the layout size of the RecyclerView recyclerView.setHasFixedSize(true); // use a linear layout manager LinearLayoutManager ll = new LinearLayoutManager(this); recyclerView.setLayoutManager(ll); initializeData(); recyclerAdapter = new RecyclerAdapter(persons); recyclerView.setAdapter(recyclerAdapter); } private void initializeData(){ persons = new ArrayList<>(); persons.add(new Person("Emma Wilson", "23 years old", R.mipmap.ic_launcher)); persons.add(new Person("Lavery Maiss", "25 years old", R.mipmap.ic_launcher)); persons.add(new Person("Lillie Watts", "35 years old", R.mipmap.ic_launcher)); }
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
软考中级精品资料免费领
- 历年真题答案解析
- 备考技巧名师总结
- 高频考点精准押题
- 资料下载
- 历年真题
193.9 KB下载数265
191.63 KB下载数245
143.91 KB下载数1142
183.71 KB下载数642
644.84 KB下载数2755