J'ai créé cette bibliothèque à l'époque où je pensais que RecyclerView était tout nouveau et difficile. Écrire un adaptateur capable de gonfler plusieurs types de vues semblait être une tâche difficile à réaliser. En réalité, RecyclerViewHeader
n'est qu'une solution complexe à un problème simple. Au lieu d'utiliser cette bibliothèque, apprenez simplement à créer un RecyclerView.Adapter
multi-type. Cela vous apportera beaucoup de valeur à long terme, et ce n’est pas difficile du tout. Consultez la section Migration
pour obtenir l’exemple le plus simple d’un tel Adapter.
Aucun nouveau développement n’aura lieu.
Merci pour tout le soutien!
Si vous souhaitez toujours utiliser cette bibliothèque, consultez l'ancien README.md.
Utilisez simplement un RecyclerView.Adapter
qui peut gonfler plusieurs types d'éléments.
Voici le plus simple que vous puissiez utiliser :
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.