RecyclerView是进阶版的清单元件,它取代了基本的ListView与GridView,不只是因为RecyclerView拥有多元的呈现样貌,而是它强制开发者实作ViewHolder类别,以实现画面复用的机制。
指派给RecyclerView的Adapter必须继承自RecyclerView.Adapter类别,以下说明如何使用RecyclerView
客制化Adapter与ViewHolder,MyAdapter须继承RecyclerView.Adapter类别,并建立ViewHolder继承自 RecyclerView.ViewHolder类别。
class MyAdapter(private val data: ArrayList<Item>, private val layout: Int):
RecyclerView.Adapter<MyAdapter.ViewHolder>() {
//实作RecyclerView.ViewHolder来储存View
class ViewHolder(V: View): RecyclerView.ViewHolder(V){
val img_photo = v.findViewById<ImageVlew>(R.id.img_photo)
val tv_msg = v.findViewById<TextView>(R.id.tv_msg)
}
//回传资料数量
override fun getItemcount() = data.size
//建立ViewHolder与Layout并连彼此
override fun onCreateViewHolder(viewGroup: ViewGroup, position: Int) :
ViewHolder {
val v= LayoutInflater.from(viewGroup.context).inflate(layout, viewGroup, false)
return ViewHolder (v)
}
//将资科指派给元件呈现
override fun onBindViewHolder (holder: ViewHolder, position: Int) {
holder.img_photo.setImageResource (data[position].photo)
holder.tv_msg.text = data[position].name
}
设定排列方式与方向。RecyclerView的排列方式由LayoutManager决定,最常见的是使用LinearLayoutManager与GridLayoutManager实现ListView与GridView的效果,并用LayoutManager的orientation属性决定方向。
//建立LipearLayoutManager物件
val linearLayoutManager = LinearLayoutManager (this)
//设定清单的排列方向
linearLayoutManager.orientation = LinearLayoutManager.VERTICAL
//连结LinearLayoutManager
recyclerView.layoutManager = linearLayoutManager
//连结adapter
recyclerView.adapter = MyAdapter(item, R.layout,adapter_horizontal)
//建立GridLayoutManager物件·并设定每栏的数量
val gridLayoutManager = GridLayoutManager(this, 3)
//设定清单的排列方向
gridLayoutManager.orientation = GridLayoutManager.VERTICAL
//连结GridLayoutManager
recyclerView.layoutManager = gridLayoutManaget
//连结adapter
recyclerView.adapter = MyAdapter(item, R.layout,adapter_vertical)
後续还有一个系列问题,搭配第30天整理刚好完赛,真是太美妙了...除了解不出来以外 XD 17. E...
境外诈骗集团使用移动式机房的好处 移动式信号追踪难度高於一般固定位置信号 来电显示为台湾电信发号,降...
今天分享一个简单又常用到的方法来处理表单,先举个新手进入React处理表单时常用到的例子: // 使...
PHP函数 函数返回值return 值通过使用可选的返回语句返回。可以返回包括数组和对象的任意类型。...
https://bootstrap5.hexschool.com/docs/5.1/getting-...