外部 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 に表示され、プログレス バーの回転が停止します。コードの回転を止めるようなものをコードに追加したことはありません。これはどのように可能ですか?それはまだアクティブ(回転)のままで、プログラムで自分で停止する必要がありますか、それとも自動的に停止しますか?この状況をどのように処理しますか?