Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
class PageAdapter(private val items: List<Item>) : RecyclerView.Adapter<PageAdapter.ViewHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
return ViewHolder(LayoutInflater.from(parent.context).inflate(R.layout.item, parent, false))
}
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
holder.item.setBackgroundColor(items[getRealPosition(position)].color)
}
override fun getItemCount(): Int {
if (items.size <= 1) {
return items.size
}
val period = Int.MAX_VALUE / 2 / items.size
return period * items.size * 2
}
fun getMiddlePosition() = itemCount / 2
fun getListSize() = items.size
private fun getRealPosition(position: Int) = position % getListSize()
class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
val item: ImageView = view.findViewById(R.id.item)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment