gpt4 book ai didi

android - Activity 布局 : Fragment class: vs android:name attributes

转载 作者:IT老高 更新时间:2023-10-28 13:21:00 26 4
gpt4 key购买 nike

我已阅读有关 Fragments 的文档在 Android 开发人员指南中,我看到有时他们使用 Fragment 标记属性 android:name 指定要实例化的类,有时他们使用 class: 属性:

<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" />

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

我想要一些关于 XML 标记和属性的文档,就像 Android Java 类一样(我在另一个 question 中询问过它)。

最佳答案

正如 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);
}

这似乎意味着程序首先查找“类”属性。并且在失败时看起来“名称”属性。因此,如果更有效的话,使用“类”是正确的。

关于android - Activity 布局 : Fragment class: vs android:name attributes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10162983/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com