जवाबों:
this.getWindow().getDecorView().findViewById(android.R.id.content)
या
this.findViewById(android.R.id.content)
या
this.findViewById(android.R.id.content).getRootView()
setContentView(R.layout.my_view)
, तो यह उस लेआउट के जनक को लौटाता है ।
यदि आप अपने लेआउट में एक आईडी डालते हैं तो आप दृश्य वापस पा सकते हैं।
<RelativeLayout
android:id="@+id/my_relative_layout_id"
और इसे findViewById से कॉल करें ...
findViewById
?
आप ओवरराइड भी कर सकते हैं , जिसे बुलाए onContentChanged()
जाने पर निकाल दिए गए अन्य लोगों setContentView()
में से है।
Kotlin
this.findViewById<View>(android.R.id.content)
.rootView
.setBackgroundColor(ContextCompat.getColor(this, R.color.black))
कोई "ContentViewSet "विधि नहीं है। आप कुछ डमी अनुरोध डाल सकते हैं। इस तरह से setCententView से पहले कोशिश / कैच ब्लॉक में कॉल करें।
प्रयत्न { requestWindowFeature (Window.FEATURE_CONTEXT_MENU); setContentView (...) } कैच (AndroidRuntimeException e) { // smth या कुछ भी नहीं }
यदि सामग्री दृश्य पहले से सेट था, तो RequestWindowFeature एक अपवाद फेंक देगा।
सबसे अच्छा विकल्प जो मुझे मिला और कम दखल देने वाला है, जैसे आपके xml में एक टैग परम सेट करना है
PHONE 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>
और फिर इसे अपनी गतिविधि कक्षा में कॉल करें:
View viewPager = findViewById(R.id.pager);
Log.d(getClass().getSimpleName(), String.valueOf(viewPager.getTag()));
आशा है कि यह यू के लिए काम करता है।
getWindow().findViewById(android.R.id.content)
:)