RecyclerView 基本用法
文章目录
基本用法
在 XML 中添加
<android.support.v7.widget.RecyclerView/>
编写继承
RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder>
的Adapter
Constructor
- 编写继承
RecyclerView.ViewHolder
的ViewHolder
onCreateViewHolder
onBindViewHolder
getItemCount
设置
RecyclerView
setLayoutManager
setAdapter
setItemAnimator
(可选)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)