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
,里面是 frame
或 layout
保存片段。 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"/>
当我在 android 工作室中用片段创建空白 Activity 时,实际完成了什么!它们具体是怎么连在一起的?在哪一行代码中,这是如何完成的?
请阅读here。 Google 的文档应该可以帮助您理解一点。
但是一个简短的版本是这样的:
在Activity的onCreate
中:
- Activity的视图已绘制。
- 片段已实例化。
在片段的 onAttach
:
- 片段已附加到 Activity
片段的 onCreate
:
- 片段已创建
在片段的 onViewCreated
:
- 片段的视图已绘制。
只需将其视为 activity 中的 activity。它本质上与使用 intent
更改 activity
相同,但只是在其中。所以有一个 parent activity
,里面是 frame
或 layout
保存片段。 parent activity
完成加载后,它将开始加载 layout
的内容,这是您的片段。 fragment
的内容可以使用 v.OnclickListener
等访问
What is actually done?
它使用以下文件创建模板。
- 一个
Activity
布局 - 一个
ActivityFragment
布局 - Activity 标题的一个
- 一个
res/menu
工具栏菜单资源 - 将
<activity>
部分添加到AndroidManifest.xml
strings.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"/>