当前位置: 移动技术网 > IT编程>开发语言>JavaScript > RecyclerView 的基础使用

RecyclerView 的基础使用

2020年08月01日  | 移动技术网IT编程  | 我要评论
类class MyListAdapter(private var list: ArrayList<JSONObject>, private val activity: FragmentActivity ) : RecyclerView.Adapter<RecyclerView.ViewHolder>() { @SuppressLint("ResourceType") override fun

class MyListAdapter(private var list: ArrayList<JSONObject>,
                        private val activity: FragmentActivity
    ) : RecyclerView.Adapter<RecyclerView.ViewHolder>() {

        @SuppressLint("ResourceType")
        override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
            // 渲染 card
            val item = LayoutInflater.from(parent.context).inflate(R.layout.这个是重复利用的项单独构成的 xml, parent, false)
            return listViewHolder(item)
        }

        // 加载新项,这个是自定义函数,网络请求到数据后调用
        fun loadData(newList: ArrayList<JSONObject>, isRefresh: Boolean){
            if (isRefresh) {
                // 如果是刷新,清空暂存的所有数据
                list.clear()
            }
            list.addAll(newList)
            notifyDataSetChanged()
        }

        override fun getItemCount(): Int {
            return list.size
        }

        override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
            // 获取当前位置的项,赋值
            val item = list[position]
            holder.itemView.createDate.text = item.getString("createDate")

            holder.itemView.arrow.setOnClickListener {
                // 这里可以执行点击事件
            }
        }

        class listViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView){

        }
    }

使用

// 创建数据源
val adapter = activity?.let { MyListAdapter(ArrayList(), it) }     //类的初始化
listRecycle(就是 RecyclerView).layoutManager = LinearLayoutManager(context!!, LinearLayoutManager.VERTICAL,false)   // 必须要有的 layoutmanager,不一定是 linear
listRecycle.adapter = adapter

请求数据

adapter?.let { getList(token, it, false) }    // 传入的值,false 对应的是 isRefresh 参数,表示是否为刷新

下拉刷新和上滑加载时调用请求数据函数并传入对应的参数即可

本文地址:https://blog.csdn.net/weixin_44774877/article/details/108123914

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网