Android片段中容器的用途

drl*_*obo 8 containers android fragment android-fragments

我正在学习片段,但我无法理解为什么片段需要Container的重要性.

我理解Fragments的工作方式如下:

  1. FragmentActivity setContentview指的是一个xml文件,它定义了片段的位置.

  2. FragmentActivity创建片段的实例

  3. 然后将片段分配给容器.

  4. 然后FragmentManager显示它们.

  5. 然后,实际的Fragment类会使布局膨胀,而这种布局包含所有应用程序UI组件.

(如果我在这里错过了什么,请纠正我,因为我现在只是在学习).

那么为什么Container的目的为什么我们甚至需要,因为在我看到的所有例子中它只是一个空白的相对布局xml文档.

不同的片段可以共享同一个Container(因为它只是一个RelativeLayout xml文件)吗?

所以在谷歌http://developer.android.com/training/basics/fragments/creating.html提供的示例中

他们有一个ListFragment,当通过使用CallBack接口选择项目时,我们最终会回到这行代码:

// Replace whatever is in the fragment_container view with this fragment,
// and add the transaction to the back stack so the user can navigate back
transaction.replace(R.id.fragment_container, newFragment);
Run Code Online (Sandbox Code Playgroud)

我的另一个问题是:

1)为什么这行代码不能用文章片段替换ListFragment(左侧片段).从初始化开始,我们看到:

getSupportFragmentManager().beginTransaction()
                    .add(R.id.fragment_container, firstFragment).commit();
Run Code Online (Sandbox Code Playgroud)

相反...... ListFragment保留在左侧,右侧Fragment更新.但容器fragment_container属于firstFragment,这是ListFragment.这不是更新的那个.

你知道为什么我有这个问题吗?本教程中没有解释这一点.

Mic*_* Z. 3

这里: http: //marakana.com/s/post/1250/android_fragments_tutorial

这里: http: //developer.android.com/guide/components/fragments.html

阅读本文,一切都会清楚:)

Fragment 是 Activity 的一部分,只能存在于 Activity 内部。因此,您需要一种可以处理片段的特殊类型的活动 - 它就是 FragmentActivity。

没有 Fragment 的 FragmentActivity 几乎就像一个普通的 Activity。但它有一个 FragmentManager 来管理(添加、删除、替换)片段。当您想要将 Fragment 添加到 FragmetnActivity 时,您应该指定它应该放置的位置(因为 Fragment 不需要全屏,就像 GooglePlay 一样 - 有多个小 Fragment)。这就是为什么你需要一个容器。

不同的片段可以共享同一个容器(因为它只是一个RelativeLayout xml 文件)吗?

是的,他们可以,您可以在同一容器中将一个片段替换为另一个片段。

  • 声明“因此您需要一种可以处理片段的特殊类型的活动 - 它就是 FragmentActivity”。对于旧版本的 android 以及使用支持库时也是如此。在当前版本(例如Android API 19)中,默认的Activity已经具有fragment功能。例如 getFragmentManager() 函数:http://developer.android.com/reference/android/app/Activity.html#getFragmentManager() (3认同)