Creé esta biblioteca en el momento en que pensaba que RecyclerView era completamente nuevo y difícil. Escribir un adaptador que pudiera inflar múltiples tipos de Vistas parecía un trabajo difícil de hacer. En realidad, RecyclerViewHeader
es sólo una solución compleja para un problema simple. En lugar de utilizar esta biblioteca, simplemente aprenda cómo crear un RecyclerView.Adapter
de varios tipos. Le aportará mucho valor a largo plazo y no es nada difícil. Consulte la sección Migration
para ver el ejemplo más simple de dicho Adapter.
No se producirá ningún nuevo desarrollo.
¡Gracias por todo el apoyo!
Si aún desea utilizar esta biblioteca, consulte el antiguo archivo README.md.
Simplemente use un RecyclerView.Adapter
que pueda inflar múltiples tipos de elementos.
Aquí está el más simple que podrías usar:
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.