[android] Obtenir la vue racine de l'activité en cours



Answers

C'est ce que j'utilise pour obtenir la vue racine telle qu'elle est trouvée dans le fichier XML assigné avec setContentView :

final ViewGroup viewGroup = (ViewGroup) ((ViewGroup) this
            .findViewById(android.R.id.content)).getChildAt(0);
Question

Je sais comment obtenir la vue racine avec View.getRootView() . Je suis également en mesure d'obtenir la vue à partir de l'événement onClick d'un bouton où l'argument est une View . Mais comment puis-je avoir la vue dans une activity ?




Si vous êtes dans une activité, supposons qu'il n'y a qu'une seule vue racine, vous pouvez l'obtenir comme ceci.

ViewGroup viewGroup = (ViewGroup) ((ViewGroup) this
        .findViewById(android.R.id.content)).getChildAt(0);

vous pouvez ensuite le lancer dans votre vraie classe

ou vous pourriez utiliser

getWindow().getDecorView();

notez que cela inclura la vue de la barre d'action, votre vue est en dessous de la vue de la barre d'actions




Juste incase Quelqu'un a besoin d'un moyen plus facile:

Le code suivant donne une vue de l'ensemble de l'activité:

View v1 = getWindow().getDecorView().getRootView();

Pour obtenir une vue certian dans l'activité, par exemple un imageView dans l'activité, ajoutez simplement l'identifiant de la vue que vous voulez obtenir:

View v1 = getWindow().getDecorView().getRootView().findViewById(R.id.imageView1);

J'espère que cela aide quelqu'un






Links