Activity 和 Fragment 在生命周期中是如何联系在一起的?

How are Activities and Fragments tied together in the lifecycle?

当我在 android 工作室中用片段创建空白 Activity 时,实际完成了什么!它们具体是怎么连在一起的?在哪一行代码中,这是如何完成的?

请阅读here。 Google 的文档应该可以帮助您理解一点。

但是一个简短的版本是这样的:

在Activity的onCreate中:

  • Activity的视图已绘制。
  • 片段已实例化。

在片段的 onAttach:

  • 片段已附加到 Activity

片段的 onCreate:

  • 片段已创建

在片段的 onViewCreated:

  • 片段的视图已绘制。

只需将其视为 activity 中的 activity。它本质上与使用 intent 更改 activity 相同,但只是在其中。所以有一个 parent activity,里面是 framelayout 保存片段。 parent activity 完成加载后,它将开始加载 layout 的内容,这是您的片段。 fragment 的内容可以使用 v.OnclickListener 等访问

What is actually done?

它使用以下文件创建模板。

  • 一个 Activity 布局
  • 一个 ActivityFragment 布局
  • Activity
  • 标题的一个 strings.xml
  • 一个 res/menu 工具栏菜单资源
  • <activity> 部分添加到 AndroidManifest.xml

How are they attached together? In which line of code?

onCreate中为Activity设置布局

setContentView(R.layout.activity_main);

它用这样的 <fragment> 标签附加片段,基本上是 FrameLayout

<fragment xmlns:android="http://schemas.android.com/apk/res/android"
          xmlns:tools="http://schemas.android.com/tools"
          android:id="@+id/fragment"
          android:name="com.androidstack.app.MainActivityFragment"
          tools:layout="@layout/fragment_main"
          android:layout_width="match_parent"
          android:layout_height="match_parent"/>