drl*_*obo 8 containers android fragment android-fragments
我正在学习片段,但我无法理解为什么片段需要Container的重要性.
我理解Fragments的工作方式如下:
FragmentActivity setContentview指的是一个xml文件,它定义了片段的位置.
FragmentActivity创建片段的实例
然后将片段分配给容器.
然后FragmentManager显示它们.
然后,实际的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.这不是更新的那个.
你知道为什么我有这个问题吗?本教程中没有解释这一点.
这里: 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 文件)吗?
是的,他们可以,您可以在同一容器中将一个片段替换为另一个片段。
| 归档时间: |
|
| 查看次数: |
13069 次 |
| 最近记录: |