Quelle méthode dois-je appeler pour savoir si une activité a son contentView (une fois que la méthode setContentView () a été appelée)?
279
this.getWindow().getDecorView().findViewById(android.R.id.content)
ou
this.findViewById(android.R.id.content)
ou
this.findViewById(android.R.id.content).getRootView()
getWindow().findViewById(android.R.id.content)
:)setContentView(R.layout.my_view)
, cela renvoie le parent de cette disposition.Vous pouvez obtenir la vue Retour si vous mettez un ID dans votre mise en page.
Et appelez-le depuis findViewById ...
la source
findViewById
?Que diriez-vous
la source
currentFocus?.let { ... }
Vous voudrez peut-être essayer
View.getRootView()
.la source
Vous pouvez également remplacer
onContentChanged()
ce qui est, entre autres, déclenché lorsqu'ilsetContentView()
a été appelé.la source
Si vous utilisez
Kotlin
la source
Il n'y a pas de méthode "isContentViewSet". Vous pouvez placer un appel factice requestWindowFeature dans le bloc try / catch avant setContentView comme ceci:
Si la vue de contenu était déjà définie, requestWindowFeature lèvera une exception.
la source
La meilleure option que j'ai trouvée et la moins intrusive, est de définir un paramètre de balise dans votre xml, comme
DISPOSITION XML DU TÉLÉPHONE
DISPOSITION XML DE LA TABLETTE
puis appelez cela dans votre classe d'activité:
J'espère que cela fonctionne pour vous.
la source