如果我正确理解了您的问题...
您有一个包含 java 文件和 xml 文件的活动。然后你有一个片段,它有自己的 java 文件和 xml 文件。
当您的活动开始时,它会像这样打开指定的 xml 文件
setContentView(R.layout.activity_main);
现在,如果您想使用片段,您应该在 Activity 的 xml 中有一个框架布局作为片段容器。这是一个托管片段的活动示例
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/drawer"
android:fitsSystemWindows="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<include
android:id="@+id/tool_bar"
layout="@layout/tool_bar">
</include>
<FrameLayout
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent">
</FrameLayout>
</LinearLayout>
<android.support.design.widget.NavigationView
android:id="@+id/navigation_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
app:headerLayout="@layout/drawer_header"
app:menu="@menu/drawer"/>
所以它基本上包含三个元素:工具栏、导航抽屉和片段容器。
现在要了解的重要一点是,该 xml 中该容器之外的任何内容都将由我调用的所有片段共享。因此,我为该活动调用的任何片段默认情况下也将具有工具栏和导航抽屉。
在activity的java文件中你可以像这样调用一个fragment(创建时不调用fragment。你必须自己调用)
Fragment firstFragment = new MainFragment();
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction().add(R.id.fragment_container, firstFragment).commit();
这样你的片段就会运行并显示出来。
片段被用来分割用户界面代码。因此,您可以拥有 5 个活动和 15 个片段,而不是在一个程序中有 20 个活动。您可以重复使用片段并替换它们。例如,我正在处理的当前项目有一个将近 800 行长的主要活动。我不想每次切换屏幕时都再次运行所有这些代码行,所以我制作了一堆片段。主要活动仍然处于活动状态,片段也是如此,但我可以在片段之间切换,而不是启动和重新启动一堆活动