Je travaille avec AsyncTask
et dans l'un des fils de fond que j'ai créés, je dois connaître la taille d'un View
donné. Mais parfois cette vue n'a pas encore été créée. Donc la question est: à quelle partie du cycle de vie de l'activité je peux être sûr que tous les points de vue sont déjà en place et avec les dimensions définies? PS: Mon code est dans un Fragment
et j'ai déjà essayé la méthode onResume()
.Comment être sûr que toutes les vues ont été créées
0
A
Répondre
0
personnalisée la vue que vous souhaitez obtenir la taille:
public class SizeFetchableView extends YourView{
//constructors...
private SizeFetchListener mSizeFetchListener;
public void setSizeFetchListener(SizeFetchListener l){
mSizeFetchListener = l;
}
public void onLayout(boolean isChanged,int l,int t,int r,int b){
super.onLayout(l,t,r,b);
if(mSizeFetchListener!=null){
mSizeFetchListener.onFetchSize(this,isChanged,getWith(),getHeight());
}
}
public interface SizeFetchListener{
public void onFetchSize(View view,boolean isChanged,int w,int h);
}
}
, vous pouvez utiliser SizeFetchListener pour obtenir la taille de la vue dans la première fois, mais votre logique de fil qui dépendent de la taille, doit attendre la récupérer l'interface de taille invoke.
public class Task extends Thread implements SizeFetchListener{
SizeFetchableView mSizeFetchableView;
public Task(SizeFetchableView v){
mSizeFetchableView=v;
mSizeFetchableView.setSizeFetchListner(this);
}
public void onFetchSize(View view,boolean isChanged,int w,int h){
//and this time ,you can start you thread if not,or continue you logic who waiting the size
}
}
// s'il vous plaît pardonnez mes mauvaises english.Thanks
Questions connexes
- 1. Comment puis-je être sûr que toutes les collections ont été remplies?
- 2. Comment vous assurer que toutes les propriétés ont été réinitialisées
- 3. Comment lister toutes les vues créées dynamiquement dans une activité?
- 4. IPhone: Comment basculer entre les sous-vues qui ont été créées dans Interface Builder
- 5. Comment être sûr que des fragments ont été ajoutés à FragmentPagerAdapter?
- 6. Comment vérifier que toutes les tâches ont été effectuées correctement?
- 7. Le rappel après que toutes les vues enfant XML ont été ajoutées à ViewGroup?
- 8. Afficher l'alerte après que toutes les conditions ont été remplies
- 9. Où mettre du code qui doit être exécuté après que les vues ont été rendues?
- 10. Quel événement est déclenché après que toutes les vues ont été entièrement dessinées?
- 11. Maven vérifier que toutes les dépendances ont été libérées
- 12. android enregistrer les vues créées par programmation
- 13. Comment tester si toutes les sous-classes ont été testées
- 14. Comment puis-je être averti lorsque toutes les demandes ont été traitées après un arrêt?
- 15. Enregistrer les vues créées dynamiquement
- 16. Comment détecter quand toutes les directives ont été chargées?
- 17. Liste toutes les vues créées dans le document de conception
- 18. Comment détecter que toutes les 30 demandes d'Alamofire ont toutes été traitées?
- 19. Comment déterminer combien de lignes ont été créées dans Table?
- 20. Identité ASP.NET - où mes tables ont-elles été créées?
- 21. Erreur Les entités ont pu être modifiées ou supprimées depuis que les entités ont été chargées
- 22. Combien de colonnes ont été créées par TextToColumns?
- 23. Comment notifier que les données ont été modifiées?
- 24. Comment rafraîchir les vues créées dynamiquement?
- 25. Django CMS - comment les vues sont créées
- 26. Comment vérifier si toutes les images ont été chargées?
- 27. Symfony définir les valeurs de forme qui ont déjà été créées en tant que FormType
- 28. android: toutes alarme ont été déminés comment les récupérer
- 29. Comment vérifier toutes les données ont été ajoutées dans Cassandra?
- 30. Peut-on supposer que toutes les vues d'une activité ont le même contexte?