Saya membuat perpustakaan ini ketika saya berpikir RecyclerView masih baru dan sulit. Menulis adaptor yang dapat mengembangkan berbagai jenis Tampilan sepertinya merupakan pekerjaan yang sulit untuk dilakukan. Faktanya, RecyclerViewHeader
hanyalah solusi kompleks untuk masalah sederhana. Daripada menggunakan perpustakaan ini, pelajari saja cara membuat RecyclerView.Adapter
multi-tipe. Ini akan memberi Anda banyak nilai dalam jangka panjang, dan itu tidak sulit sama sekali. Periksa bagian Migration
untuk contoh paling sederhana dari Adapter.
Tidak ada perkembangan baru yang akan terjadi.
Terima kasih atas semua dukungannya!
Jika Anda masih ingin menggunakan perpustakaan ini, periksa README.md yang lama.
Cukup gunakan RecyclerView.Adapter
yang dapat mengembangkan beberapa jenis item.
Inilah yang paling sederhana yang dapat Anda gunakan:
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.