android - Kotlin 中是否默认停止 CircularProgressBar?
问题描述
我正在从外部 API 获取数据。在 ViewModel 类中,我收集如下数据:
private val state: MutableState<Resource<List<Item>>> = mutableStateOf(Resource(emptyList()))
viewModelScope.launch {
repository.getItems().collect { resource ->
state.value = resource
}
}
在我使用的活动类中:
val resource = viewModel.state.value
when(resource) {
is Resource.Loading -> Column(
modifier = Modifier.fillMaxSize(),
verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.CenterHorizontally
) {
CircularProgressIndicator() // Starts spinning
}
is Resource.Success -> LazyColumn {
items(
resource.data
) { item ->
ItemCard(item = item)
}
}
is Resource.Failure -> Text(
text = resource.message,
)
}
一旦资源开始加载,进度条就会开始旋转。一旦我得到数据,当资源成功时,它会显示在 CardView 中并且进度条停止旋转。我从来没有在我的代码中添加阻止它旋转的东西。这怎么可能?它是否仍然处于活动状态(旋转)并且我需要以编程方式自行停止它,还是自动停止?如何处理这种情况?
解决方案
推荐阅读
- bash - 2 tail -f 使用不同的命令
- python - 如何解决“TypeError:只能将str(不是“sqlite3.Cursor”)连接到str”
- pywinauto - 如何等待按钮出现在pywinauto中
- kubernetes - 有没有办法在 deployment.yml 文件中动态添加值?
- python - 在 Pandas 或 sklearn 中按索引分组时使用时是否可以打乱数据帧?
- react-native - 如何在 React Native 的组件中直接调用函数
- php - 错误:在 null 上调用成员函数 create(),单元测试(嘲弄)
- jpa - 如何在不使用 JPQL 的情况下选择多行?
- android - 为什么 MediaStore.Images.Media.insertImage 总是将图像保存在 Pictures 文件夹中?
- esri - netcoreapp2.2 不支持 Esri.ArcGISRuntime nuget 包