0

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

4

0 に答える 0