和Content.xml和Fragment.xml的目的是什么

时间:2016-07-28 19:20:16

标签: android xml android-layout android-fragments

在遇到这个之前我已经升级了我的android工作室。

我需要片段空白活动。 我正在使用片段创建“DetailActivity”的新活动。它创造了两个 源文件

1)DetailActivity.java 
2)DetailActivityFragment.java

还创建了3个其他源文件,即

1)Activity_Detail.xml
2)Fragment_Detail.xml
3)Content_Detail.xml

我理解了两个源文件的重要性,但并没有真正理解这3个源文件的重要性。

我的问题是: Activity_Detail.xml中有一个标记,即:

 <include layout="@layout/content_detail" />

这意味着我们可以继续在 Content_Detail.xml (我的理解)中添加我们的ui元素

那么为什么我们有 Fragment_Detail.xml

Fragment_Detail.xml 的目的是什么? 如果UI元素应该在 Fragment_Detail.xml 中,那么 Content_Detail.xml

的目的是什么

UI元素应该去哪里: Fragment_Detail.xml Content_Detail.xml

Android Studio 2.2版

api版本:22

Android M。

2 个答案:

答案 0 :(得分:0)

  

那么为什么我们有Fragment_Detail.xml?

因为您可能在通过向导创建活动时忘记取消勾选此选项:

Use a Fragment

  

这意味着我们可以继续在Content_Detail.xml(我的理解)中添加我们的ui元素

是的,这是正确的。但您也可以向activity_detail添加UI元素,this question说明哪些元素用于哪些元素。

答案 1 :(得分:0)

如果您生成一个带有片段的新项目,那么它会生成这三个文件,以分离您正在创建的DetailActivity的不同组件。

第一个是 activity_main.xml ,其中包含与AppBar布局相关的所有信息,可能是浮动操作按钮,如果您查看代码,则会有以下行:

<include layout="@layout/content_main" />

此行代码将 content_main.xml 文件嵌入 activity_main.xml 文件中。 content_main.xml 只是片段的定义:

<fragment xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/fragment"
android:name="csci567.examples.myapplication.MainActivityFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:layout="@layout/fragment_main" />

如果您注意到最后一行定义了片段的布局,则将其作为 fragment_main.xml 文件。这确实突破了定义片段的位置以及定义活动的位置。它还将活动主体其余部分的内容分离到 content_main.xml 文件中。

希望有所帮助。