Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class MainAdapter : PagedListAdapter<ItemViewModel, MainAdapter.ItemViewHolder>(ItemCallback) {
- override fun getItemViewType(position: Int): Int {
- return when (getItem(position)) {
- is BannerView.Model -> 1
- // bla bla
- else -> 0 // loading model
- }
- }
- override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ItemViewHolder {
- val inflater = LayoutInflater.from(parent.context)
- val layoutRes = when (viewType) {
- 1 -> R.layout.banner_view
- // bla bla
- else -> R.layout.loading_view
- }
- val view = inflater.inflate(layoutRes, parent, false)
- return ItemViewHolder(view = view)
- }
- override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
- val model = getItem(position) ?: LoadingView.Model(
- id = "loading $position"
- )
- when (model) {
- is BannerView.Model -> (holder.itemView as BannerView).apply {
- setContent(model.content)
- setOnClick(model.onClick)
- }
- // bla bla
- }
- }
- class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement