【发布时间】:2015-05-23 11:06:34
【问题描述】:
对于我当前的应用,我使用 minSdkVersion 14 和片段支持库来创建片段。
问题(多个动态创建的嵌套片段):
在我创建的其他应用程序中,我通过在片段中创建接口然后在我的活动中实现该接口来管理只有一个或两个级别的动态片段。
但是对于我当前的应用,我需要实现 3 或 4 级动态创建的片段作为
MainActivity 有一个 frameLayout,
然后从主 Activity 调用 Fragment 1 并将其添加到 frameLayout
然后从 Fragment 1 调用 Fragment 2 并再次替换相同 frameLayout 的内容...等等直到最后片段 4 替换了相同 frameLayout 的内容。 在从片段 1 到片段 4 的每个页面(片段布局)上,用户必须选择一些内容才能转到下一页。
它在第一次运行时工作正常,一切正常,但在更改设备的方向时,仅添加第一个片段(片段 1)frameLayout,而不是最后一个(片段 4)填充 frameLayout。
我添加了 this.setRetainInstance(true);不过对于我所有的碎片。
我正在使用当前片段调用新片段:
AllocationFragment.NewInstance(CurrActivityContext, urlToCatch2);
这里,CurrActivityContext = MainActivity.this
然后在 newInstance() 中:
- 如何在方向改变时在 frameLayout 中显示最后一个片段(片段 4)?
- 这里,主要活动 -> 片段 1 -> 片段 2 -> 片段 3 -> 片段 4
如何将数据从 Fragment 4 传递到 Fragment 3?
混乱
添加多个级别(在我的例子中为 4 级)动态创建的片段或在每个片段之后我应该将数据传递回主要活动是个好主意,它将充当控制器并传输数据到下一个片段。
一般来说,多少级的嵌套片段应该是可管理的。
【问题讨论】:
标签: android android-layout android-fragments android-activity android-nested-fragment