Réponses:
this.getWindow().getDecorView().findViewById(android.R.id.content)
ou
this.findViewById(android.R.id.content)
ou
this.findViewById(android.R.id.content).getRootView()
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.
<RelativeLayout
android:id="@+id/my_relative_layout_id"
Et appelez-le depuis findViewById ...
findViewById
?
Vous pouvez également remplacer onContentChanged()
ce qui est, entre autres, déclenché lorsqu'il setContentView()
a été appelé.
Kotlin
this.findViewById<View>(android.R.id.content)
.rootView
.setBackgroundColor(ContextCompat.getColor(this, R.color.black))
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:
essayez { requestWindowFeature (Window.FEATURE_CONTEXT_MENU); setContentView (...) } catch (AndroidRuntimeException e) { // fais smth ou rien }
Si la vue de contenu était déjà définie, requestWindowFeature lèvera une exception.
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
<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"/>
DISPOSITION XML DE LA TABLETTE
<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>
puis appelez cela dans votre classe d'activité:
View viewPager = findViewById(R.id.pager);
Log.d(getClass().getSimpleName(), String.valueOf(viewPager.getTag()));
J'espère que cela fonctionne pour vous.
getWindow().findViewById(android.R.id.content)
:)