J'essaye d'arrêter la barre de progression après avoir reçu une réponse du serveur. Voici le code xml que j'ai utilisé
activity.xml
var progressBar = findViewById(R.id.progressBar) as ProgressBar doAsync { try { progressBar.setVisibility(View.VISIBLE); appList = getAppList(requestBody, LAUNCHER_BASE_URL) Log.d("App list =", appList.toString()) appInfoList = populateList() progressBar.setVisibility(View.GONE); } catch (e: Exception) { progressBar.setVisibility(View.GONE); Log.e("Exception-launcher", e.toString()) }
activity.kt
p>
<ProgressBar android:layout_weight="1" android:id="@+id/progressBar" android:indeterminate="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:minHeight="40dp" android:minWidth="40dp" tools:ignore="MissingConstraints" />
D'après le code ci-dessus, la barre de progression ne s'arrête pas même après avoir obtenu la réponse. Toute aide serait appréciée
J'ai essayé mais la page devient vide après l'arrêt de la barre de progression
4 Réponses :
Vous masquez la barre de progression uniquement si le code entre dans Exception
(bloc catch).
Déplacez votre code après le bloc catch, comme suit:
try { progressBar.setVisibility(View.VISIBLE); appList = getAppList(requestBody, LAUNCHER_BASE_URL) Log.d("App list =", appList.toString()) appInfoList = populateList() } catch (e: Exception) { Log.e("Exception-launcher", e.toString()) } progressBar.setVisibility(View.GONE);
J'ai essayé et la barre de progression s'arrête mais le problème est que l'écran devient vide après que la barre de progression soit partie
@ChristinaVarghese pouvez-vous s'il vous plaît ajouter votre code XML?
essayez ce lien stackoverflow.com/questions/36918219/...
Ajoutez progressBar.setVisibility (View.INVISIBLE);
dans votre clause try également, car dans son état actuel, il ne supprimera le chargement que lorsque l'API échoue:
var progressBar = findViewById(R.id.progressBar) as ProgressBar doAsync { try { progressBar.setVisibility(View.VISIBLE); appList = getAppList(requestBody, LAUNCHER_BASE_URL) Log.d("App list =", appList.toString()) appInfoList = populateList() progressBar.setVisibility(View.INVISIBLE); } catch (e: Exception) { progressBar.setVisibility(View.INVISIBLE); Log.e("Exception-launcher", e.toString()) }
J'ai essayé et la barre de progression s'arrête mais le problème est que l'écran devient vide après que la barre de progression soit partie
Je ne suis pas sûr de la présentation de la mise en page, mais essayez View.INVISIBLE
et voyez si cela change quelque chose.
Merci beaucoup, cela fonctionne. Au lieu de View.GONE
.J'ai utilisé View.INVISIBLE
essayez le code ci-dessous
doAsync { try { progressBar.visibility = View.VISIBLE appList = getAppList(requestBody, LAUNCHER_BASE_URL) Log.d("App list =", appList.toString()) appInfoList = populateList() } catch (e: Exception) { progressBar.visibility = View.GONE Log.e("Exception-launcher", e.toString()) } finally { progressBar.visibility = View.GONE }
J'ai essayé et la barre de progression s'arrête mais le problème est que l'écran devient vide après que la barre de progression soit partie
je suppose que le problème est dans votre xml
il n'y a pas non plus de problème dans xml que vous avez joint ci-dessus
Je suppose que c'est votre composition de vue qui crée un problème, vous devriez essayer View.INVISIBLE
au lieu de View.GONE
Comment gérer View
dans doAsync
Normalement, cela devrait représenter de cette manière
val progressBar = findViewById<ProgressBar>(R.id.progressBar) progressBar.visibility = View.VISIBLE doAsync { try { appList = getAppList(requestBody, LAUNCHER_BASE_URL) Log.d("App list =", appList.toString()) appInfoList = populateList() } catch (e: Exception) { e.printStackTrace() } uiThread { progressBar.visibility = View.GONE } }
Parce que votre barre de progression a disparu alors qu'elle lève une exception, pas à ce moment-là où vous obtenez une réponse de succès.
vous vouliez donc montrer la réponse à l'utilisateur après l'arrêt de la barre de progression? et votre affichage devient vide après la disparition de la barre de progression. Cela signifie que vous n'avez pas joint votre réponse à votre conception.
Double possible de Android - Impossible de masquer la barre de progression