如何在API中的每个请求上显示加载图标?在第一个请求上,它显示进度图标,但在第二个请求上,它就像缓存了一样,没有显示加载。
我的视图模型:
class CadastroViewModel:ViewModel() {
private val cadastroRepository= CadastroRepository()
private val _resultado: MutableStateFlow<MessageCad> = MutableStateFlow(MessageCad())
val resultado: StateFlow<MessageCad>
get() = _resultado
fun create(nome: String,email: String,cpf:String,telefone:String,
celular:String,senha:String,endereco:String,bairro:String,numero:String,
complemento:String,cidade:String
){
viewModelScope.launch {
try {
val r = cadastroRepository.createUser(nome,email,cpf,telefone,celular,senha,endereco,bairro,
numero,complemento,cidade)
_resultado.value = r
} catch (e:Exception) {
Log.d("Service error",e.toString())
}
}
}
}
我的视图模型调用:
val value: MessageCad by model.resultado.collectAsState(initial = MessageCad())
if(value.message.isEmpty()){
CircularProgressIndicator(modifier = Modifier.wrapContentWidth(Alignment.CenterHorizontally))
}
1条答案
按热度按时间ulmd4ohb1#
这个问题看起来像是
value.message.isEmpty()
在第一次调用后从不返回true,因为model.resultado
总是有一个非空的结果。您应该创建一个装入标志
将其设置为
或者使用
ViewState
方法来使Loading
、Success或Error状态显示为api调用的任何可能状态。