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.