Android - ProgressBar setVisibility ALLÉ pas de travail
J'ai été l'ajout d'un ProgressBar
les fragments de mon application. Je l'ai mis en place pour les deux fragments principaux (utilisé en tant qu'onglets) comme suit:
ProgressBar
dans activity_main.xml
:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ProgressBar
android:id="@+id/progressBar1"
style="?android:attr/progressBarStyleLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true" />
</RelativeLayout>
Réglage ProgressBar
VISIBLE
et GONE
:
spinner = (ProgressBar)getActivity().findViewById(R.id.progressBar1);
spinner.setVisibility(View.VISIBLE);
spinner.setVisibility(View.GONE);
Cela fonctionne sans aucun problème. J'ai essayé d'ajouter un autre ProgressBar
à un autre fragment qui a un WebView
:
ProgressBar
dans fragment_article.xml
:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="info.androidhive.slidingmenu.ArticleFragment$PlaceholderFragment" >
<WebView android:id="@+id/webPage"
android:layout_height="wrap_content"
android:layout_width="wrap_content"/>
<ProgressBar
android:id="@+id/progressBar1"
style="?android:attr/progressBarStyleLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true" />
</RelativeLayout>
La Définition De La Visibilité:
spinner = (ProgressBar)getActivity().findViewById(R.id.progressBar1);
spinner.setVisibility(View.VISIBLE);
spinner.setVisibility(View.GONE);
La définition de la visibilité de la même façon que le code précédent, mais pour une raison quelconque, ce n'est pas le réglage de la ProgressBar
à GONE
. Pas sûr de ce qui est faux.
J'ai essayé d'utiliser clearAnimation
comme suggéré ici Android, setVisbility allé pas de travail dans RelativeLayout mais toujours rien.
spinner.clearAnimation();
spinner.setVisibility(View.GONE);
Merci pour la suggestion, comme @Argument Illégal de réponse j'ai été en utilisant
getActivity
au lieu de viewInflated
OriginalL'auteur j.grima | 2014-06-21
Vous devez vous connecter pour publier un commentaire.
Vérifier ce code:
Si vous êtes à l'aide de fragments, il devrait ressembler à ceci:
Si vous utilisez l'activité alors:
ProgressBar
qui a abouti à une exception, ce qui est logique car j'ai fait leProgressbar
de laActivity
pas leFragment
J'ai d'abord pensé que trop à cause spinner est une liste déroulante comme composant et vous avez nommé votre progressbar variable spinner. Une vérification rapide de votre code m'a fait réaliser que l'instanciation est incorrect
il n'a pas d'importance si vous appelez de l'Activité.findViewById ou de la Vue.findViewById, essayer les deux et voir ce que ces méthodes retournent, s'ils retournent le même point de Vue (et ils le feront si vous utilisez différents ids) le résultat sera toujours le même
OriginalL'auteur Illegal Argument
J'ai eu un problème identique (progressBar.setVisibility() ne fonctionnait pas).
@Argument Illégal dit,
devrait fonctionner, si le code s'exécute sur l'uiThread(mainThread).
Mon problème était que j'étais en train d'exécuter du code non sur uiThread.
Donc, j'ai résolu le problème en changeant le code de
à
OriginalL'auteur KevinRyu
C'est probablement dû au fait que
View.GONE
permettra d'éviter laView
d'être dessiné à l'écran, tandis qu'un autreView
android:layout_align[POSITION]
composant peut être défini à ceView
, de sorte que leur position ne peut pas être calculé.View.INVISIBLE
sera cause du travail qu'il vient de faire invisible, mais leView
est toujours là et d'autresView
peut calculer leur position si l'alignement est défini àProgressBar
de laActivity
pas leFragment
OriginalL'auteur Christopher Francisco
Ce travail pour moi:
OriginalL'auteur Александр Крылов
progressBar.setVisibility(ProgressBar.VISIBLE);
OriginalL'auteur Desmond Hsu