作家
登录

那年的RecyclerView我们从头撸一下

作者: 来源: 2017-07-14 15:51:18 阅读 我要评论

【技巧沙龙】AI开辟者拭魅战营-7分钟打造1个定制技能。7月22号,我们等你一路!


  1. // 给纵向显示RecyclerView设置瓜分线 
  2. recyclerView.addItemDecoration(new DividerItemDecoration(activity,DividerItemDecoration.VERTICAL)); 
  3. // 给横向显示RecyclerView设置瓜分线 
  4. recyclerView.addItemDecoration(new DividerItemDecoration(activity,DividerItemDecoration.HORIZONTAL));  

1. RecyclerView是什么?

根据Google官方给出的解释:A flexible view for providing a limited window into a large data set。可以或许在有限的窗口中展示大年夜数据集合的灵活视图。

所以我们可以或许懂得为,RecyclerView的一个恰当的应用处景是:因为尺寸限制,用户的设备不克不及一次性展示所有条目,用户须要高低滚动以查看更多条目。滚出可见区域的条目将被收受接收,并鄙人一?条目可见的时刻被复竽暌姑。

对于削减内存开销和CPU的计算,缓存条目是一个异常有效的办法,因为这意味着我们不必每次都创建新的条目,大年夜而减小内存开销和CPU的计算,并且还可以或许有效降低屏幕的卡顿,包管滑动的顺滑。

RecyclerView不关怀视觉效不雅(visuals)

然则和ListView有什么差别呀?我们已经应用ListView很长一段时光了呀,它一样可以做到呀。大年夜它的类名上看,RecyclerView代表的意义是,我尽管Recycler View,也就是说RecyclerView尽管收受接收与复竽暌姑View,其他的开辟者可以本身去设置。你想要另一个构造?插入另一个LayoutManager。你想要不合的动画吗?插入一个ItemAnimator,等等。可以看出其高度的解耦,赐与你充分的定制自由(所以你才可以轻松的经由过程这个控件实现ListView,GirdView,瀑布流等效不雅)。

2. 惹人RecyclerView

RecyclerView 是Support Library的一部分。所以只须要在app/build.gradle中添加以下依附,便能急速应用:

  1. dependencies { compile 'com.android.support:recyclerview-v7:25.3.1'

在构造文件中参加:

  1. <android.support.v7.widget.RecyclerView 
  2.  
  3. android:id="@+id/recycler_view" 
  4.  
  5. android:layout_width="match_parent" 
  6.  
  7. android:layout_height="match_parent" />  

然后在页面中惹人RecyclerView即可:

OK,大年夜如今开端,让我们一步一步,开端懂得它。

在之前的版本中,当时据集合产生改变时,我们经由过程调用.notifyDataSetChanged(),来刷新列表,因为如许做会触发列表的重绘,所以并不会出现任何动画效不雅,是以须要调用一些以notifyItem*()作为前缀的特别办法,比如:

  • public final void notifyItemInserted(int position) 向指定地位插入Item
  • public final void notifyItemRemoved(int position) 移除指定地位Item
  • public final void notifyItemChanged(int position) 更新指定地位Item

3. 应用RecyclerView

下面的表格中就是应用RecyclerView来显示数据顶用到的几个最重要的类,这些类都是RecyclerView的内部类,如不雅你想应用RecyclerView,须要做以下操作:

Class 功能 Adapter 处理数据集归并负责绑定视图 ViewHolder 持有所有的用于绑定命据或者须要操作的View LayoutManager 负责摆放视图等相干操作 ItemDecoration 负责绘制Item邻近的瓜分线 ItemAnimator 为Item的一般操作添加动画效不雅,如,增删条目等

我们可以大年夜下图更直不雅的懂得到RecyclerView的根本构造:

接下来,我将要描述每个类或接口的内容以及若何应用它。

ViewHolder的根本用法是用来存放View对象。Android团队很早之前就推荐应用“ViewHolder设计模式”,然则没有请求开辟者在Adapter中必须应用ViewHolder模式。那么如今对于这种新型的RecyclerView.Adapter,我们必须实现并应用这种模式。

Google官方等了这么长时光才强迫应用ViewHolder模式,这有点奇怪,但迟做总比不做好。如不雅您不懂得ViewHolder模式,请查看一下Android training Hold View Objects in a View Holder。别的网上有大年夜量关于ListView优化的文┞仿。面试重点。

有一件事是专门针对RecyclerView的。ViewHolder子类可以经由过程拜访公共成员itemView来拜访ViewHolder的根视图。所以不须要在ViewHolder子类中存储。

下面是示例的ViewHolder的代码,ViewHolder是示例Adapter的内部类:

 1/8    1 2 3 4 5 6 下一页 尾页

  推荐阅读

  Windows 10计划任务怎么用?教你轻松玩转Windows 10自带任务计划

【技巧沙龙】AI开辟者拭魅战营-7分钟打造1个定制技能。7月22号,我们等你一路! Win10筹划义务怎么竽暌姑?义务筹划是Windows操作体系异常强大年夜的一个功能,应用义务筹划,我们可以将任>>>详细阅读


本文标题:那年的RecyclerView我们从头撸一下

地址:http://www.17bianji.com/lsqh/36229.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)