配置(方向)上的嵌套片段发生更改

时间:2012-05-08 19:33:40

标签: android configuration orientation fragment

我无法理解Android如何处理片段(特别是嵌套片段)的方向更改。

假设我有一个加载片段a1的活动f1f1然后在f2方法中将多个片段oncreateview()的实例加载到自身中。

现在,我的活动a1在(oncreate())中有此内容:

if (savedInstanceState != null)
    return;

确保不会加载f1的多个实例。我在f1中执行相同的操作以确保不会加载重复的f2实例。

但是,我的班级f1稍后需要引用f2个实例。目前我将它们存储在f1对象的ArrayList中,但是在方向更改后,此ArrayList为空,我认为f2实例将是任何方式的不同对象。

所以我的问题是,在方向更改后如何获得嵌套片段以及保留对它们的引用的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

您可以使用FragmentManger查找对其他片段的引用。

您可以通过执行以下操作来获取对其他片段的引用:

DetailsFragment details = (DetailsFragment) getFragmentManager().findFragmentById(R.id.details);

DetailsFragment details = (DetailsFragment) getFragmentManager().findFragmentByTag("my tag");

如果您还没有看过,请查看this博文。

如果您有多个相同片段的实例,则可以在创建片段时设置标记,并在查找片段时使用该标记而不是id。