Welche Methode sollte ich aufrufen, um zu erfahren, ob eine Aktivität ihre contentView hat (nachdem die Methode setContentView () aufgerufen wurde)?
279
this.getWindow().getDecorView().findViewById(android.R.id.content)
oder
this.findViewById(android.R.id.content)
oder
this.findViewById(android.R.id.content).getRootView()
getWindow().findViewById(android.R.id.content)
:)setContentView(R.layout.my_view)
, wird das übergeordnete Element dieses Layouts zurückgegeben.Sie können die Ansicht Zurück erhalten, wenn Sie Ihrem Layout eine ID hinzufügen.
Und rufen Sie es von findViewById auf ...
quelle
findViewById
?Wie wäre es mit
quelle
currentFocus?.let { ... }
Vielleicht möchten Sie es versuchen
View.getRootView()
.quelle
Sie können auch überschreiben,
onContentChanged()
was unter anderem ausgelöst wird, wennsetContentView()
es aufgerufen wurde.quelle
Wenn Sie verwenden
Kotlin
quelle
Es gibt keine "isContentViewSet" -Methode. Sie können einen Dummy-Aufruf von requestWindowFeature in den try / catch-Block einfügen, bevor Sie setContentView wie folgt einstellen:
Wenn die Inhaltsansicht bereits festgelegt wurde, löst requestWindowFeature eine Ausnahme aus.
quelle
Die beste Option, die ich gefunden habe und die weniger aufdringlich ist, ist das Festlegen eines Tag-Parameters in Ihrer XML, wie z
TELEFON XML LAYOUT
TABLET XML LAYOUT
und rufen Sie dies dann in Ihrer Aktivitätsklasse auf:
Hoffe es funktioniert für dich.
quelle