android get - Obtenir la vue racine de l'activité en cours




4 Answers

Si vous avez besoin d'une vue racine de votre activité (pour y ajouter votre contenu), utilisez

findViewById(android.R.id.content)

En outre, il a été signalé que sur certains appareils, vous devez utiliser

getWindow().getDecorView().findViewById(android.R.id.content)

au lieu.

Veuillez noter que, comme Booger l'a signalé, il se peut que ce soit derrière la barre de navigation (avec le bouton de retour, etc.) sur certains appareils (mais cela ne semble pas être le cas sur la plupart des appareils).

Si vous avez besoin d'une vue que vous avez ajoutée à votre activité à l'aide de la méthode setContentView() , alors, comme l'a écrit pottedmeat, vous pouvez utiliser

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

Mais mieux vaut simplement définir id à cette vue dans votre mise en page XML et utiliser cet ID à la place.

current activity

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 ?




J'ai testé cela dans Android 4.0.3, seulement:

getWindow().getDecorView().getRootView()

donner la même vue ce que nous obtenons

anyview.getRootView();

[email protected]#########

et

getWindow().getDecorView().findViewById(android.R.id.content)

donner un enfant de son

[email protected]#######

Veuillez confirmer.




Obtenez la vue racine de l'activité en cours.

Dans notre activité, nous pouvons obtenir la vue root avec:

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

ou

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



pour avoir une vue de l'activité en cours

dans tout onClick, nous obtiendrons "View View", en utilisant "view" obtenir le rootView.

Voir vue = view.getRootView ();

et pour obtenir View in fragment

Voir vue = FragmentClass.getView ();




Related