équivalent viewDidLoad et viewDidAppear Android
-
29-09-2019 - |
Question
Est-ce que Android ont un équivalent à Cocoa fonctions viewDidLoad et viewDidAppear?
Sinon, comment pourrais-je aller sur l'exécution d'une action lorsqu'une vue apparaît? Mon application est une application par onglets, dans lequel l'un des onglets est une liste des sujets du forum. Je voudrais que la liste des sujets à rafraîchir à chaque fois que la vue apparaît. Une telle chose est possible dans Android?
La solution
La classe d'activité a des méthodes onCreate et onResume qui sont assez analogues à viewDidLoad et viewDidAppear.
EDIT
Pour ajouter à cela, puisque certains ont mentionné dans les commentaires que l'arbre de vue ne soit pas encore pleinement disponible au cours de ces callbacks, il y a le ViewTreeObserver que vous pouvez écouter si vous avez besoin d'abord accès à la hiérarchie de la vue. Voici un exemple de la façon dont vous pouvez utiliser la ViewTreeObserver pour y parvenir.
View someView = findViewById(R.id.someView);
final ViewTreeObserver obs = someView.getViewTreeObserver();
obs.addOnPreDrawListener(new OnPreDrawListener() {
public boolean onPreDraw() {
obs.removeOnPreDrawListener(this);
doMyCustomLogic();
return true;
}
});
Autres conseils
onResume () est plus comme viewCouldAppear. :) public void onWindowFocusChanged (Boolean) est le plus proche de viewDidAppear. A ce stade, au sein de l'activité du cycle de vie, vous pouvez demander à la vue de sa taille.
De ma compréhension naissante, limitée d'Android, vous mettre en œuvre viewDidLoad fonctionnalité de type dans le onCreate de votre Activité :
onCreate (Bundle) est l'endroit où vous initialiser votre activité. Plus important, ici vous habituellement appeler setContentView (int) avec une mise en page ressources définissant votre interface utilisateur, et l'utilisation de findViewById (int) pour récupérer la widgets dans cette interface que vous devez interagissent avec un programme.
L'équivalent pour viewDidAppear est plus proche de la onResume :
Appelée après onRestoreInstanceState (Bundle), onRestart (), ou OnPause (), pour votre activité pour commencer à interagir avec le utilisateur. Ceci est un bon endroit pour commencer animations, ouvert un accès exclusif des dispositifs (tels que la caméra), etc.