RecyclerView 基本用法
文章目录
基本用法
在 XML 中添加
<android.support.v7.widget.RecyclerView/>编写继承
RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder>的AdapterConstructor- 编写继承
RecyclerView.ViewHolder的ViewHolder onCreateViewHolderonBindViewHoldergetItemCount
设置
RecyclerViewsetLayoutManagersetAdaptersetItemAnimator(可选)addItemDecoration(可选)
#XML
新建 xml,添加 RecyclerView。
|
|
ViewHolder
我们以前使用 ListView 的时候,会用以下的方式来提高 ListView 的性能:
- 用
convertView来减少LayoutInflater.inflate的使用 - 用
ViewHolder来减少findViewById的使用
RecyclerView 标准化了 ViewHolder 来缓存昂贵 findViewById 的结果。
例子:
|
|
PS: 一般 ViewHolder 会编写在 Adapter 的内部。
#Adapter
我们需要继承 RecyclerView.Adapter<RecyclerView.ViewHolder> 来编写我们自己的 Adapter 。编写我们自己的 Adapter 的时候,最重要的是要重写 onCreateViewHolder 和 onBindViewHolder 方法。
|
|
注意,在这个例子中我们的 MyAdapter 存放的是 <RecyclerView.ViewHolder>,所以在 onCreateViewHolder 中返回的也必须是 <RecyclerView.ViewHolder>,而在 onBindViewHolder 的回调中,我们拿到的也是 RecyclerView.ViewHolder,要把它强转成我们之前编写的 MyViewHolder 之后才能正常使用。
#RecyclerView
最后只要设置一下 RecyclerView 就能使用了。
|
|
参考资料
文章作者 scarletsky
上次更新 2019-04-30 (95a170d)