Created
July 29, 2021 11:35
-
-
Save ch8n/a83f51f6199ebe46f9b713a1510d097a to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Represent ViewTypes which user provides | |
*/ | |
sealed class ViewType { | |
object ListItemHeader : ViewType() | |
object ListItemContent : ViewType() | |
} | |
/** | |
* Test View Holders | |
*/ | |
class ContentHeader(view: View) : ViewHolder(view) { | |
fun bind(){...} | |
} | |
class ContentContent(view: View) : ViewHolder(view) { | |
fun bind(){...} | |
} | |
/** | |
* Implementation of Adapter Class | |
*/ | |
class SampleAdapter : Adapter() { | |
/** | |
* Similar to getItemViewType() of Recycler Adapter | |
*/ | |
override fun getViewType(pos: Int): ViewType { | |
return when (pos) { | |
0 -> ViewType.ListItemHeader | |
else -> ViewType.ListItemContent | |
} | |
} | |
/** | |
* Similar to onBindViewHolder() of Recycler Adapter | |
*/ | |
override fun bindViewHolder(holder: ViewHolder, pos:Int) { | |
when (holder) { | |
is ContentHeader -> holder.bind() | |
is ContentContent -> holder.bind() | |
} | |
} | |
/** | |
* Similar to onCreateViewHolder() of Recycler Adapter | |
*/ | |
override fun createViewHolder(viewType: ViewType): ViewHolder { | |
when (viewType) { | |
ViewType.ListItemContent -> TODO() | |
ViewType.ListItemHeader -> TODO() | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment