在我的viewModel中,我收集一个流
viewModelScope.launch {
repository.getMessagesStream(project).cachedIn(viewModelScope).collectLatest {
_uiState.value = UiState.Content(it)
}
}
字符串
并在ui上观察时将其提交给adapter
lifecycleScope.launch {
adapter.submitData(messageList)
}
型
在我的适配器中,我有一个选择/删除项目的功能。逻辑涉及使用布尔值(isSelected)更新房间数据库。
fun upDateSelectedMessage(messageId: Int, isSelected: Boolean) {
viewModelScope.launch {
withContext(Dispatchers.IO) {
repository.updateSelectedMessage(isSelected = isSelected, messageId =messageId)
}
}
}
型
问题:
当我进一步向下滚动列表并从那里选择/取消选择时,列表向上滚动到顶部。我没有网络服务,我只从房间数据库获取数据。
fun getMessagesStream(): Flow<PagingData<Message>> {
val pagingSourceFactory = { appDao.getMessages() }
return Pager(
config = PagingConfig(pageSize = 30, enablePlaceholders = false),
pagingSourceFactory = pagingSourceFactory
).flow
}
型
当一个项目被选中/删除时,我如何防止滚动到顶部?
1条答案
按热度按时间ujv3wf0j1#
试试
PagingConfig(pageSize = 30, enablePlaceholders = true)