아이템을 보여주는 대표적인 View로는 Recyclerview, ListView, AddView가 있다.
뒤 두 View는 현재는 잘 안쓰인다고는 하는데 현직자가 아니라 잘 모르겠고!
제일 많이 쓰이고 있는 Recyclerview를 정리해놔야겠다!!!
RecyclerView는 여러가지 Item을 화면에 출력해주며 이를 동적으로 표현해주는 컨테이너라고 할 수 있다.
ViewHolder 개념을 포함하고 있기 때문에 ListView의 개선판 이라고 볼 수 있다. (그래서 유연하다!)
<androidx.recyclerview.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent"/>
recyclerView = view.findViewById(R.id.rv_search)
// Adpater 연결
recyclerView.adapter = MyRecyclerViewAdpater()
// LayoutManager 연결
recyclerView.layoutManager = LinearLayoutManager(activity)
class MyRecyclerViewAdpater :
RecyclerView.Adapter<MyRecyclerViewAdpater.MyViewHolder>() {
override fun onCreateViewHolder(
parent: ViewGroup,
viewType: Int
): MyRecyclerViewAdpater.MyViewHolder {
//마지막 인자 -> parent에 합성 시킬지
val view = LayoutInflater.from(parent.context).inflate(R.layout.movie_item, parent, false)
return MyViewHolder(view)
}
override fun getItemCount(): Int {
//보여줄 화면의 갯수
return list.size
}
@SuppressLint("ResourceAsColor")
override fun onBindViewHolder(
holder: MyRecyclerViewAdpater.MyViewHolder,
position: Int
) {
holder.apply {
//뷰홀더에서 가지고온 item들로 해야하는 작업을 여기서 실행
}
}
}
class MyViewHolder(val view: View) : RecyclerView.ViewHolder(view) {
//위의 onCreateViewHolder에서 생성된 view를 가지고 실행한다.
//item을 담을 xml의 item들을 가지고 오기
//예를들어
val rankTextView: TextView = view.findViewById(R.id.rank)
}