活动布局:片段类:vs android:name属性

Gia*_*nzi 63 android xml-attribute android-xml android-fragments

我已经阅读了Android开发人员指南中有关Fragments的文档,我发现有时他们会指定要使用Fragment标记属性android:name进行实例化的类,有时他们会使用class: attribute:

<fragment
    android:name="com.example.news.ArticleReaderFragment"
    android:id="@+id/viewer"
    android:layout_weight="2"
    android:layout_width="0dp"
    android:layout_height="match_parent" />

<fragment
    class="com.example.android.apis.app.FragmentLayout$TitlesFragment"
    android:id="@+id/titles" 
    android:layout_weight="1"
    android:layout_width="0px" 
    android:layout_height="match_parent" />
Run Code Online (Sandbox Code Playgroud)

安卓:名称类:互换?如果我在Eclipse中使用自动完成功能,它们都会显示相同的文档提示(即该属性提供了要实例化的类名).当要实例化的类具有与java文件名不同的名称时,可能必须使用第二个名称,例如FragmentLayout.java文件中的TitlesFragment?或者我可以使用语法package.fileDOTjava $ Class也使用android:name属性?

我想为Android Java类提供一些XML标签和属性的文档(我在另一个问题中询问过它).

far*_*.be 42

正如Activity.onCreateView来源所说:

String fname = attrs.getAttributeValue(null, "class");
TypedArray a = context.obtainStyledAttributes(attrs, com.android.internal.R.styleable.Fragment);
if (fname == null) {
    fname = a.getString(com.android.internal.R.styleable.Fragment_name);
}
Run Code Online (Sandbox Code Playgroud)

这似乎意味着程序首先看起来是"类"属性.失败时看起来是"名字"属性.因此,如果更高效,使用"类"是真的.


Com*_*are 24

android:name和class:可以互换吗?

据推测,是的.我只使用了class,这似乎是Google大多数示例使用的内容,但我确实看到了它们android:name在某些示例中使用的位置.不幸的是,没有正式和完整的文档<fragment>.