Advertisement
Guest User

Untitled

a guest
Jun 17th, 2019
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.19 KB | None | 0 0
  1. class MainAdapter : PagedListAdapter<ItemViewModel, MainAdapter.ItemViewHolder>(ItemCallback) {
  2.  
  3. override fun getItemViewType(position: Int): Int {
  4. return when (getItem(position)) {
  5. is BannerView.Model -> 1
  6. // bla bla
  7. else -> 0 // loading model
  8. }
  9. }
  10.  
  11. override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ItemViewHolder {
  12. val inflater = LayoutInflater.from(parent.context)
  13. val layoutRes = when (viewType) {
  14. 1 -> R.layout.banner_view
  15. // bla bla
  16. else -> R.layout.loading_view
  17. }
  18. val view = inflater.inflate(layoutRes, parent, false)
  19. return ItemViewHolder(view = view)
  20. }
  21.  
  22. override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
  23. val model = getItem(position) ?: LoadingView.Model(
  24. id = "loading $position"
  25. )
  26.  
  27. when (model) {
  28. is BannerView.Model -> (holder.itemView as BannerView).apply {
  29. setContent(model.content)
  30. setOnClick(model.onClick)
  31. }
  32. // bla bla
  33. }
  34. }
  35.  
  36.  
  37. class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view)
  38. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement