Je sais comment obtenir la vue racine avec View.getRootView () . Je peux également obtenir la vue à partir d'un onClick
événement de bouton où l'argument est une vue . Mais comment obtenir la vue d'une activité ?
android
android-activity
view
Lalith
la source
la source
setContentView()
et la vue que vous avez fournie est déjà la racine. Si vous avez besoin de la poignée de cette vue, mettez simplement un ID dans XAML et cefindViewById()
serait bien.Réponses:
Si vous avez besoin d'une vue racine de votre activité (pour pouvoir y ajouter votre contenu), utilisez
Il a également été signalé que sur certains appareils, vous devez utiliser
au lieu.
Veuillez noter que, comme Booger l'a signalé, cela peut être derrière la barre de navigation (avec le bouton de retour, etc.) sur certains appareils (mais cela ne semble pas le cas sur la plupart des appareils).
Si vous devez obtenir la vue que vous avez ajoutée à votre activité à l'aide de la
setContentView()
méthode, comme l'écrit la viande en pot, vous pouvez utiliserMais mieux vaut simplement définir id sur cette vue dans votre mise en page XML et utiliser cet identifiant à la place.
la source
C'est ce que j'utilise pour obtenir la vue racine trouvée dans le fichier XML affecté avec
setContentView
:la source
ActionBar
également le?J'ai testé cela dans Android 4.0.3, seulement:
donner la même vue de ce que nous obtenons
et
donner à l'enfant de son
Veuillez confirmer.
la source
Obtenez une vue racine de l'activité en cours.
À l'intérieur de notre activité, nous pouvons obtenir la
root
vue avec:ou
la source
Dans Kotlin, nous pouvons le faire un peu plus court:
la source
Il suffit que quelqu'un ait besoin d'un moyen plus simple:
Le code suivant donne une vue d'ensemble de l'activité:
View v1 = getWindow().getDecorView().getRootView();
Pour obtenir une vue certian dans l'activité, par exemple une imageView à l'intérieur de l'activité, ajoutez simplement l'id de la vue que vous souhaitez obtenir:
J'espère que cela aide quelqu'un
la source
findViewById(R.id.imageView1);
l'activité si vous voulez la vue spécifique.anyview.getRootView();
sera le moyen le plus simple.la source
Solution d'extension Kotlin
Utilisez-le pour simplifier l'accès à une activité. Ensuite, vous pouvez vous référer directement à
rootView
partir de l'activité, ou enactivity.rootView
dehors de celle-ci:Si vous souhaitez ajouter la même chose pour les fragments à des fins de cohérence, ajoutez:
la source
pour obtenir une vue de l'activité en cours
dans n'importe quel onClick, nous obtiendrons "View view", en utilisant 'view', obtenez le rootView.
View view = view.getRootView ();
et pour obtenir View in fragment
Vue vue = FragmentClass.getView ();
la source
si vous êtes dans une activité, supposez qu'il n'y a qu'une seule vue racine, vous pouvez l'obtenir comme ceci.
vous pouvez ensuite le lancer dans votre vraie classe
ou vous pourriez utiliser
notez que cela inclura la vue de la barre d'action, votre vue est en dessous de la vue de la barre d'action
la source
Activity
classe.Pour ceux d'entre vous qui utilisent la bibliothèque de liaison de données , pour obtenir la racine de l'activité en cours, utilisez simplement:
Et pour les utilisateurs de Kotlin, c'est encore plus simple:
la source
Une autre solution d'extension Kotlin
Si la vue de votre activité est déclarée en xml (ex
activity_root.xml
), ouvrez le xml et attribuez un identifiant à la vue racine:Maintenant dans votre classe, importez la vue en utilisant:
Vous pouvez maintenant l'utiliser
root_activity
comme vue.la source