Anybody could explain the meaning of "android.R.id.content" ?
How is it being used ?
http://developer.android.com does not have any explanation.
public static final int content
Since: API Level 1Constant Value: 16908290 (0x01020002)
Anybody could explain the meaning of "android.R.id.content" ?
How is it being used ?
http://developer.android.com does not have any explanation.
public static final int content
Since: API Level 1Constant Value: 16908290 (0x01020002)
As Philipp Reichart commented:
android.R.id.content
gives you the root element of a view, without having to know its actual name/type/ID. Check out http://stackoverflow.com/questions/4486034/android-how-to-get-root-view-from-current-activity
The android.R.id.content
ID value indicates the ViewGroup
of the entire content area of an Activity
.
It can be used with Fragment
:
public class MyActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(android.R.id.content, MyFragment.newInstance())
.commit();
}
}
...
}
The code above will insert the View
created by Fragment
into the ViewGroup
identified by android.R.id.content
.
Google designers develop Android UX with specific or recommended design guidelines. The layout android.R.id.content defines a linearlayout with a few attributes Android believes are a good standard.
Thus loading a Fragment Manager's root view with android.R.id.content ensures these guidelines are implemented.
NOTE: This layout has set the attribute: android:addStatesFromChildren="true" to allow child fragments to overwrite attributes in this rootview.
As of version 19, android.R.id.content is defined in a file: auto_complete_list.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/content"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:drawable/edit_text"
android:divider="@android:drawable/divider_horizontal_textfield"
android:addStatesFromChildren="true">
android.R.id.content is very useful for when you need a view, for example:
Show Snackbar:
Snackbar.make(activity.findViewById(android.R.id.content), MESSAGE, Snackbar.LENGTH_LONG).show();
Fragment transaction
getSupportFragmentManager().beginTransaction()
.add(android.R.id.content, FragmnetTest.newInstance())
.commit();
android.R.id.content
gives you the root element of a view, without having to know its actual name/type/ID. Check out stackoverflow.com/questions/4486034/… – Philipp Reichartif(fragmentManager.findFragmentById(android.R.id.content)==null) {fragmentManager.beginTransaction(android.R.id.content, list).add().commit();}
Can you tell whichView
's root element is this? – Solaceandroid.R.id.content
? – Sushant