当我滚动列表时,我使用带有分页3的LazyColumn加载联系人,有时它会抛出以下异常
java.lang.IllegalStateException: LayoutNode should be attached to an owner
at androidx.compose.ui.node.LayoutNodeKt.requireOwner(LayoutNode.kt:1407)
at androidx.compose.ui.node.ModifierLocalConsumerNode.notifyConsumerOfChanges(ModifierLocalConsumerNode.kt:42)以下是LazyColumn的代码:
val contactsFlow= viewModel.fetchContacts(context)
val lazyContacts = contactsFlow.collectAsLazyPagingItems()
LazyColumn(
modifier = Modifier.padding(top = 8.dp),
verticalArrangement = Arrangement.spacedBy(8.dp)) {
items(lazyContacts) { contact ->
if(contact != null)
{
Contact(contact = contact, onContactClick = {
viewModel.addMemberFrom(it) { member ->
onContactClick(member)
}
})
}
}
}以下是viewModel代码:
fun fetchContacts(context: Context): Flow<PagingData<Contact>> {
return Pager(
PagingConfig(10, enablePlaceholders = true, initialLoadSize = 20)
) {
ContactsPagingSource(contactManager, context)
}.flow.cachedIn(viewModelScope)
}发布于 2022-08-07 11:37:15
在使用LazyColumn中的项列表时,不能跳过带有空检查的项。试着在你的“联系人”中展示一些东西。它可以是“加载”或默认值。
https://stackoverflow.com/questions/72031803
复制相似问题