방법은 쉽다! onCreateViewHolder의 viewType으로 분기해서 뷰홀더를 만들어주면 됨!!
물론 이때 각 뷰타입에 맞는 뷰홀더 클래스(FirstCardViewHolder, StoryViewHolder)들도 만들어줘야하고, 리턴 타입도 제너럴하게 RecyclerView.ViewHolder로 바꿔줘야 함.
아니 근데 내가 뭘 넘긴 적이 없는데,, 얘가 어떻게 알고 뷰타입을 넘겨줄 수 있지? 🧐
어댑터 내부에 getItemViewType(position: Int)를 오버라이드하면 onCreateViewHolder의 viewType으로 쏙 들어가게 된다는 사실!!
그다음 onBindViewHolder의 holder 타입도 제너럴하게 RecyclerView.ViewHolder로 바꿔준다!
내부 뷰타입에 따른 분기방법은 2가지(1. position/model의 변수로 직접확인. 2. 홀더객체의 타입을 확인하여 분기)가 있지만 추후 변동성을 생각하면 로직 중복을 줄이기 위해 2번으로 진행!
클래스에 빨간줄이 뜬다면!!!
어댑터의 뷰홀더 타입도 제너럴하게 바꿔줘야함..RecyclerView.ViewHolder로..
-> 각 value들은 companion object에 상수로 두거나, enum class로 두어 관리.