适用于Android的Fragments中容器的用途
我正在学习片段,但我无法理解片段为什么需要Container。
我理解Fragments的工作方式如下:
FragmentActivity setContentview引用一个定义碎片位置的xml文件。
FragmentActivity创建片段的实例
然后将片段分配给容器。
FragmentManager然后显示它们。
然后实际的Fragment类扩大了布局,这是包含所有应用程序UI组件的布局。
(如果我错过了某些东西,请纠正我,因为我现在只是在学习)。
那么为什么我们甚至需要容器的目的,因为在我看到的所有例子中,它只是一个空白的相对布局xml文档。
不同的片段可以共享相同的容器(因为它只是一个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(左侧片段)。 自从它初始化以来,我们看到:
getSupportFragmentManager().beginTransaction()
.add(R.id.fragment_container, firstFragment).commit();
相反... ListFragment保留在左侧,右侧的Fragment被更新。 但容器fragment_container属于firstFragment,这是ListFragment。 这并不是最新的。
你明白为什么我有这个问题吗? 这在教程中没有解释。
这里:http://marakana.com/s/post/1250/android_fragments_tutorial
在这里:http://developer.android.com/guide/components/fragments.html
阅读这一点,所有将清晰:)
片段是Activity的一部分,只能存在于Activity中。 所以你需要一个可以处理片段的特殊类型的活动 - 它是FragmentActivity。
没有碎片的FragmentActivity几乎就像一个普通的Activity。 但它有一个FragmentManager来管理(添加,删除,替换)碎片。 当你想为FragmetnActivity添加一个片段时,你应该指定它的放置位置(因为片段不需要全屏,就像GooglePlay一样 - 有多个小片段)。 所以这就是为什么你需要一个容器。
不同的片段可以共享相同的容器(因为它只是一个RelativeLayout xml文件)?
是的,他们可以,你可以用同一个容器内的另一个片段替换一个片段。
链接地址: http://www.djcxy.com/p/11787.html