9
votes

Cacher l'indicateur "Chargement ..." lors de la mise en œuvre d'un fragment

J'ai créé l'affichage à l'aide des fragments , qui sont tous deux peuplés avec des données tirées à partir d'Internet. Bien que le code fonctionne lui-même comme prévu sans aucun problème, l'un d'un fragment (mis en œuvre comme listfragment ) affiche un indicateur de progression indéterminant dans le fragment, qui est asymétrique sur le côté. Je souhaite supprimer l'indicateur et utiliser un autre progresssialog i Mise en œuvre comme indicateur à la place.

faire des recherches, j'ai découvert la fonction setlistShownoanimation () (documenté ici ) dans la catégorie listfragment , mais les tentatives suivantes n'ont pas fonctionné:

  • Calling SetListShownoanimation () Dans le fragment OnActivityCreated ()
  • l'appelant dans l'activité parent Oncreate
  • l'appelant dans le fragment OnCreateView () (Ceci a provoqué un illegalStateException )

    Comment puis-je supprimer l'indicateur de progression du fragment?


3 commentaires

Essayé d'utiliser un setlist montré (vrai)?


@Warpzit: à partir de ce que l'API Android indique, setlistHown (true) affichera la liste (qui peut avoir été initialisé et défini). De plus, il ne semble pas désactiver l'indicateur de chargement, que le setlistHownoanimation () semble faire.


était juste une suppose :) désolé je ne pouvais pas aider


3 Réponses :


1
votes

Cette solution de contournement peut ne pas être la meilleure méthode pour résoudre ceci, mais cela fonctionne bien:

Ce que j'ai fait a d'abord été faire le fragment non afficher du tout quand je l'ai déclaré dans le fichier Layout.xml: xxx

puis après que les données ont été téléchargées et traitées, je voudrais alors afficher le fragment à l'aide d'une fragmenttransaction: xxx

s'il y a un Un meilleur moyen de résoudre ce problème, je suis ouvert aux suggestions.


1 commentaires

Eh bien, si la visibilité est partie, vous devez le modifier de manière programmatique sur visible, visibilité (vue.visibilité);



24
votes

La bonne façon de le faire est d'appeler:

setListShown(true);


3 commentaires

Cela semble être le bon sens depuis que si vous passez la méthode false, il devrait apparemment montrer un indicateur de progression de chargement à l'utilisateur qui est agréable. Le problème est que lorsque j'utilise cette méthode dans mon fragment, je reçois illégalStateException, ne peut pas être utilisé avec une vue personnalisée du contenu. Ce qui donne?


Vous avez raison. Cela devrait généralement être la bonne façon de l'appeler. Mon projet a été fait un peu différemment, ce qui nécessitait une approche différente. Je marquais votre réponse est la réponse acceptée toujours. :)


Cela devrait être appelé en suractivitéCreated.



0
votes
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) {
    adapter.swapCursor(cursor);
    if(isResumed()) {
        setListShown(true);
    } else {
        setListShownNoAnimation(true);
    }
}
But you have to setListShown(false) where you set the ListAdapter. This works fine.

0 commentaires