Skip to content

Instantly share code, notes, and snippets.

@sergei-lapin
Created August 5, 2021 06:59
Show Gist options
  • Select an option

  • Save sergei-lapin/7fc1021d03b41725e2f02a4d94b57e62 to your computer and use it in GitHub Desktop.

Select an option

Save sergei-lapin/7fc1021d03b41725e2f02a4d94b57e62 to your computer and use it in GitHub Desktop.
createItem
protected fun createItem(viewType: Int) {
val created = itemsCreated.getOrZero(viewType) + 1
val queued = itemsQueued.getOrZero(viewType)
if (created > queued) return
val holder: RecyclerView.ViewHolder
val start: Long
val end: Long
try {
start = nanoTime
holder = viewHolderProducer.invoke(fakeParent, viewType)
end = nanoTime
} catch (e: Exception) {
return
}
holder.setItemViewType(viewType)
itemsCreated[viewType] = itemsCreated.getOrZero(viewType) + 1
mainHandler.postAtFrontOfQueue { viewHolderConsumer.invoke(holder, end - start) }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment