Ich habe diese Bibliothek damals erstellt, als ich dachte, RecyclerView sei völlig neu und schwierig. Einen Adapter zu schreiben, der mehrere Arten von Ansichten erweitern konnte, schien eine schwierige Aufgabe zu sein. In Wirklichkeit ist RecyclerViewHeader
nur eine komplexe Lösung für ein einfaches Problem. Anstatt diese Bibliothek zu verwenden, lernen Sie einfach, wie Sie einen RecyclerView.Adapter
mit mehreren Typen erstellen. Es wird Ihnen auf lange Sicht viel Wert bringen und ist überhaupt nicht schwierig. Das einfachste Beispiel eines solchen Adapters finden Sie im Abschnitt Migration
Adapter.
Es wird keine Neuentwicklung geben.
Vielen Dank für jede Unterstützung!
Wenn Sie diese Bibliothek weiterhin verwenden möchten, überprüfen Sie die alte README.md.
Verwenden Sie einfach einen RecyclerView.Adapter
, der mehrere Arten von Elementen aufblasen kann.
Hier ist die einfachste, die Sie verwenden können:
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.