제가 보기에 원래 시도하셨던 방법이 여러모로 더 나은 방법이라고 보입니다. List.subList()를 사용하시면 원래 있던 아이템의 일부만 가져와서 사용하 수 있어요. adapter외부에서 해당 리사이클러뷰에 보이는 아이템을 넘겨준다면 코드의 수정없이 원하시는 동작이 가능하겠네요.
recyclerViewAdapter.submtList(item: List<ItemType>)
class RecyclerViewAdapter: RecyclerView.Adapter {
private val _items = arrayListOf<ItemType>()
fun submistList(items: List<ItemType>) {
_items.clear()
_items.addAll(items)
notifyDatasetChanged()
}
overrride fun getItemCount(): Int {
return _items.size
}
}
Adapter가 위처럼 외부에서 전달하는 list에 의존하고 있다면, 원하는 몇개의 아이템만 처리하는데에 adapter 자체의 변경이 없어야 합니다. 그렇지 않다면, 뭔가 구조를 잘못 잡으신 걸로 보입니다.