Search code examples
androidkotlinandroid-jetpack-composeandroid-jetpacklazycolumn

Cannot use list in lazycolumn in kotlin


I am using LazyColumn in project. When I am passing the list it giving me error. Can someone guide me what is the error?

ResultScreen.kt

@Composable
fun ResultScreen(nearestResultList: List<NearestResult>?) {
    LazyColumn(
        Modifier
            .fillMaxSize()
            .background(getBackgroundColor())
    ) {
        items(nearestResultList) { nearestResult ->
            Text(text = "$nearestResult")
        }
    }
}

Error

Type mismatch.
Required:
Int
Found:
List<NearestResult>?

enter image description here

UPDATE

enter image description here


Solution

  • You were seeing that error because your nearestResultList is nullable and among the various signatures/overloads of the items(...) function, the signature items(size: Int, ...) was chosen as the "closest match".

    The only thing that you need to do, to be able to use any of the items(...) signatures is a null check

    import androidx.compose.foundation.lazy.items // or auto-fix imports
    
    if (nearestResultList != null) {
        LazyColumn {
            items(nearestResultList) {
                Text(text = it.event, color = Color.White)
            }        
        }
    }