我正在学习 Fragments,但我无法理解为什么 Fragments 需要一个 Container 背后的意义。
我理解 Fragments 工作的方式如下:
FragmentActivity setContentview 是指定义片段所在位置的 xml 文件。
FragmentActivity 创建片段的实例
然后将片段分配给容器。
FragmentManager 然后显示它们。
实际的 Fragment 类然后膨胀一个布局,正是这个布局包含了所有的应用程序 UI 组件。
(如果我在这里遗漏了什么,请纠正我,因为我现在只是在学习)。
那么为什么容器的目的是我们为什么需要,因为在我看到的所有示例中,它只是一个空白的相对布局 xml 文档。
不同的片段可以共享同一个 Container(因为它只是一个 RelativeLayout xml 文件)吗?
所以在google 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);
我的另一个问题是:
1)为什么这行代码没有用文章片段替换ListFragment(左侧Fragment)。自从它被初始化以来,我们看到:
getSupportFragmentManager().beginTransaction()
.add(R.id.fragment_container, firstFragment).commit();
相反... ListFragment 保留在左侧,右侧 Fragment 已更新。但是容器fragment_container属于firstFragment这是ListFragment。这不是更新的。
你明白我为什么有这个问题吗?这在教程中没有解释。