Android:android.R.id.content的用途是什么?


140

任何人都可以解释“ android.R.id.content”的含义吗?

如何使用?

http://developer.android.com没有任何解释。


从以下版本开始:public static final int内容:API级别1

常数值:16908290(0x01020002)


94
android.R.id.content为您提供视图的根元素,而无需知道其实际名称/类型/ ID。退房stackoverflow.com/questions/4486034/...
菲利普Reichart

2
这在片段事务中很有用,例如:mFragmentTransaction.add(android.R.id.content,myFragment);
IgorGanapolsky 2014年

@IgorGanapolsky一个示例应用程序有条件地执行这种事务:if(fragmentManager.findFragmentById(android.R.id.content)==null) {fragmentManager.beginTransaction(android.R.id.content, list).add().commit();}您能知道这View是哪个根元素吗?
安慰

@Zarah您确定此处的语法正确且可编译吗?
IgorGanapolsky 2014年

与布局相关的类是什么android.R.id.content
Sushant

Answers:


98

正如Philipp Reichart所说

android.R.id.content为您提供视图的根元素,而无需知道其实际名称/类型/ ID。查看http://stackoverflow.com/questions/4486034/android-how-to-get-root-view-from-current-activity


5
可以在第2段中找到其使用的实际示例:developer.android.com/guide/topics/ui/actionbar.html#Tabs
OrhanC1 2014年

4
“为您提供视图的根元素,而不必知道其实际名称/类型/ ID”如何知道我们想要其根元素的视图。
安慰

21

android.R.id.contentID值指示ViewGroup的整个内容区域的Activity

它可以与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();
        }
    }

    ...

}

上面的代码将插入View通过创建FragmentViewGroup鉴定android.R.id.content


9

Google设计师使用特定或推荐的设计指南来开发Android UX。布局android.R.id.content定义了linearlayout其中包含一些Android认为是很好的标准的属性。

因此,使用android.R.id.content加载Fragment Manager的根视图可确保实现这些准则。

注意:此布局已设置属性: android:addStatesFromChildren =“ true”以允许子片段覆盖此rootview中的属性。

从版本19开始,在文件中定义了android.R.id.content: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">
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.