hmk run dev
RecycleView 본문
요즘엔 List가 없는 앱을 찾기 힘들다.
배민 - 음식점 list
야놀자 - 숙박 list
핀다 - 대출 list
이렇듯 거의 모든 어플엔 list 형식이 있는데
RecycleView말 그대로 재활용이 된다는 것이다.
화면에 보여질 만큼의 view를 생성하고 계속 재활용한다.
RecycleView를 사용하기 위한 준비물이 2개가 필요하다.
1. Adapter
- view 생성 만든 view 안에서 데이터 바인딩 담당
class MyAdapter(val context: Context,
val list : List<MemoEntity>,
var onDeleteListner: OnDeleteListner) : RecyclerView.Adapter<MyAdapter.MyViewHoler>() {
// 리스트 사이즈
override fun getItemCount(): Int {
return list.size
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHoler {
val itemView = LayoutInflater.from(context).inflate(R.layout.item_memo, parent, false)
return MyViewHoler(itemView)
}
// 틀을 만든 것과 리스트안에 내용을 합쳐준다
override fun onBindViewHolder(holder: MyViewHoler, position: Int) {
// list = 1,2,3
val memo = list[position]
holder.memo.text = memo.memo
// 꾹 ~ 누르면 delete
holder.root.setOnLongClickListener(object : View.OnLongClickListener{
override fun onLongClick(p0: View?): Boolean {
onDeleteListner.onDeleteListner(memo)
return true
}
})
}
inner class MyViewHoler (itemView : View) : RecyclerView.ViewHolder (itemView) {
val memo = itemView.textview_memo
val root = itemView.root
}
}
2. Layout Manager
- recycleView 내부에서 어떻게 아이템을 보여줄지 결정함(grid, horizontal, vertical)
'android' 카테고리의 다른 글
안드로이드 INTENT란? (0) | 2022.02.12 |
---|---|
앱과 Firebase (0) | 2022.02.06 |
안드로이드 Activity 라이프 사이클 (0) | 2022.02.06 |
안드로이드 데이터 관리 ROOM (0) | 2022.02.06 |
안드로이드 앱 Constraint Layout (0) | 2022.02.06 |
Comments