Antworten:
this.getWindow().getDecorView().findViewById(android.R.id.content)
oder
this.findViewById(android.R.id.content)
oder
this.findViewById(android.R.id.content).getRootView()
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.
<RelativeLayout
android:id="@+id/my_relative_layout_id"
Und rufen Sie es von findViewById auf ...
findViewById
?
Kotlin
this.findViewById<View>(android.R.id.content)
.rootView
.setBackgroundColor(ContextCompat.getColor(this, R.color.black))
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:
Versuchen { requestWindowFeature (Window.FEATURE_CONTEXT_MENU); setContentView (...) } catch (AndroidRuntimeException e) { // mach was oder nichts }}
Wenn die Inhaltsansicht bereits festgelegt wurde, löst requestWindowFeature eine Ausnahme aus.
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
<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:tag="phone"/>
TABLET XML LAYOUT
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:tag="tablet">
...
</RelativeLayout>
und rufen Sie dies dann in Ihrer Aktivitätsklasse auf:
View viewPager = findViewById(R.id.pager);
Log.d(getClass().getSimpleName(), String.valueOf(viewPager.getTag()));
Hoffe es funktioniert für dich.
getWindow().findViewById(android.R.id.content)
:)