Viv*_*odi 13 android kotlin android-jetpack android-jetpack-compose lazycolumn
我在项目中使用 LazyColumn。当我传递列表时,它给了我错误。有人可以指导我什么错误吗?
@Composable
fun ResultScreen(nearestResultList: List<NearestResult>?) {
LazyColumn(
Modifier
.fillMaxSize()
.background(getBackgroundColor())
) {
items(nearestResultList) { nearestResult ->
Text(text = "$nearestResult")
}
}
}
Run Code Online (Sandbox Code Playgroud)
错误
Type mismatch.
Required:
Int
Found:
List<NearestResult>?
Run Code Online (Sandbox Code Playgroud)
更新
Sar*_*tal 26
正确的解决方案是使用此导入:
import androidx.compose.foundation.lazy.items
Run Code Online (Sandbox Code Playgroud)
问题在于接受列表的 items 函数被定义为扩展函数,因此我们需要导入它以使其可见以供使用。
您看到该错误是因为您的nearestResultList可为空,并且在该函数的各种签名/重载中items(...),该签名items(size: Int, ...)被选为“最接近的匹配”。
为了能够使用任何签名,您唯一需要做的items(...)就是空检查
import androidx.compose.foundation.lazy.items // or auto-fix imports
if (nearestResultList != null) {
LazyColumn {
items(nearestResultList) {
Text(text = it.event, color = Color.White)
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2942 次 |
| 最近记录: |