You’re using when like a simple Java switch statement, which is okay but not very idiomatic and can be improved. You can refactor your code in two steps:
-
Kotlin’s
whencan be used as an expression, it returns a value if you wish:override fun getItemViewType(position: Int): Int { return when (position) { 0 -> TITLE.type 1 -> SUBTITLE.type 2 -> ITEM.type else -> -1 } } -
The function body, now consisting of a single statement, can be changed into an expression body:
override fun getItemViewType(position: Int) = when (position) { 0 -> TITLE.type 1 -> SUBTITLE.type 2 -> ITEM.type else -> -1 }