Table of contents
Two, GridLayoutManager grid layout
3. StaggeredGridLayoutManager waterfall flow layout
Series Article Directory
Android foundation 1: Android UI basic container https://blog.csdn.net/m0_58941767/article/details/127726407?spm=1001.2014.3001.5501
Android foundation two: several common components https://blog.csdn.net/m0_58941767/article/details/128004641?spm=1001.2014.3001.5501
foreword
In this section, we will briefly introduce the RecyclerView component. RecyclerView is an important advanced UI control for Android . It is used so frequently that more than 90% of the pages of the APP will be used. Due to its excellent performance and pluggable architecture design, it has been unanimously praised by developers all over the world.
1. LinerLayoutManager list layout
1. Horizontal list
recyclerView.layoutManager =LinearLayoutManager(context, HORIZONTAL,
false)
recyclerView.adapter = MyAdapter()
2. Vertical list
recyclerView.layoutManager =LinearLayoutManager(context, VERTICAL, false)
recyclerView.adapter = MyAdapter()
3. Resource adapter
inner class MyAdapter : RecyclerView.Adapter<ViewHolder>() {
// 【必须复写】创建 ItemView 的 ViewHolder,用于后续的数据绑定
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int):
ViewHolder {
val view
=LayoutInflater.from(context).inflate(R.layout.item_view_staggered,
parent, false)
return ViewHolder(view)
}
// 【必须复写】告诉 RecyclerView 列表上 item 的条数
override fun getItemCount(): Int {
return 20
}
// 【必须复写】item 的数据绑定
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
holder.itemView.item_head.setImageResource(R.drawable.icon_jetpack)
holder.itemView.item_name.text = "【${position}】移动端架构师体
系课"
holder.itemView.item_message.text =
"移动开发“两极分化”,没有差不多的“中间层,唯有尽早成长为架构师,
你的职业道路才能走的更远更稳"
}
}
// 创建一个 ViewHolder 必须继承自 RecyclerView.ViewHolder。用于后续的数据
绑定
inner class ViewHolder(itemView: View) :
RecyclerView.ViewHolder(itemView) {
}
Two, GridLayoutManager grid layout
recyclerView.layoutManager = GridLayoutManager(context, 2)
recyclerView.adapter = MyAdapter()
Three, StaggeredGridLayoutManager waterfall flow layout
recyclerView.layoutManager =StaggeredGridLayoutManager(2, VERTICAL)
recyclerView.adapter = MyAdapter()