[응용] 리사이클러뷰에서 ViewHolder 패턴 활용

1. RecyclerView ViewHolder

ViewHolder 패턴을 사용하여 View를 재사용합니다. 그래서 비용이 드는 findViewById() 호출을 최소화합니다.

https://medium.com/@yo___oo/kotlin%EC%9C%BC%EB%A1%9C-recyclerview-%EC%82%AC%EC%9A%A9-%EC%8B%9C-%EC%98%AC%EB%B0%94%EB%A5%B8-viewholder-%EC%82%AC%EC%9A%A9%EB%B2%95-31acb26fef9a

1. RecyclerAdapter 코드 설명

class RecyclerAdapter(private val items: ArrayList<Model>) :
    RecyclerView.Adapter<RecyclerAdapter.ViewHolder>() {

    class ViewHolder(v: View) : RecyclerView.ViewHolder(v) {
    
    	val title: TextView = view.findViewById(R.id.titleText)
    
    	fun bind(item: Model) {
        	title.text = item.title
    	}
    }
    
    override fun getItemCount() = items.size

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerAdapter.ViewHolder {
    	val View = LayoutInflater.from(parent.context).inflate(R.layout.board_list, parent, false)
    	return RecyclerAdapter.ViewHolder(View)
    }
    
    override fun onBindViewHolder(holder: RecyclerAdapter.ViewHolder, position: Int) {
        val item = items[position]
        
    	holder.apply {
        	bind(item)
    	}
    }
}

좋은 웹페이지 즐겨찾기