RecyclerViewHeader
2.0.1
RecyclerView가 새롭고 어렵다고 생각하던 시절에 이 라이브러리를 만들었습니다. 여러 유형의 뷰를 확장할 수 있는 어댑터를 작성하는 것은 어려운 일처럼 보였습니다. 실제로 RecyclerViewHeader
는 단순한 문제에 대한 복잡한 솔루션일 뿐입니다. 이 라이브러리를 사용하는 대신 다중 유형 RecyclerView.Adapter
만드는 방법을 알아보세요. 장기적으로 볼 때 많은 가치를 가져다 줄 것이며 전혀 어렵지 않습니다. 이러한 어댑터의 가장 간단한 예는 Migration
섹션을 확인하세요 Adapter.
새로운 개발은 일어나지 않을 것입니다.
모든 지원에 감사드립니다!
이 라이브러리를 계속 사용하고 싶다면 이전 README.md를 확인하세요.
여러 유형의 항목을 확장할 수 있는 RecyclerView.Adapter
사용하면 됩니다.
사용할 수 있는 가장 간단한 방법은 다음과 같습니다.
class ExampleAdapter : RecyclerView . Adapter < RecyclerView . ViewHolder >() {
companion object {
private const val VIEW_TYPE_HEADER = 4815
private const val VIEW_TYPE_ITEM = 1623
}
private val itemDataSetSize : Int get() = TODO ( " provide the size of your `ITEM` dataset " )
override fun onCreateViewHolder ( parent : ViewGroup , viewType : Int ): RecyclerView . ViewHolder {
when (viewType) {
VIEW_TYPE_HEADER -> TODO ( " create your HEADER ViewHolder " )
VIEW_TYPE_ITEM -> TODO ( " create your ITEM ViewHolder " )
else -> error( " Unhandled viewType= $viewType " )
}
}
override fun onBindViewHolder ( holder : RecyclerView . ViewHolder , position : Int ) {
when ( val viewType = getItemViewType(position)) {
VIEW_TYPE_HEADER -> TODO ( " bind your HEADER ViewHolder " )
VIEW_TYPE_ITEM -> TODO ( " bind your ITEM ViewHolder " )
else -> error( " Unhandled viewType= $viewType " )
}
}
override fun getItemCount (): Int = itemDataSetSize + 1 // 1 for header
override fun getItemViewType ( position : Int ) = when (position) {
0 -> VIEW_TYPE_HEADER
else -> VIEW_TYPE_ITEM
}
}
Copyright 2015 Bartosz Lipiński
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.