【问题标题】:Nested fragments on configuration (orientation) change配置(方向)更改的嵌套片段
【发布时间】:2012-05-17 07:52:48
【问题描述】:

我无法理解 Android 如何在方向更改时处理片段(尤其是嵌套片段)。

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

现在我的活动a1 在 (oncreate()) 中有这个:

if (savedInstanceState != null)
    return;

确保f1 的多个实例不会被加载。我在f1 中做了同样的事情,以确保不会加载重复的f2 实例。

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

所以我的问题是,嵌套片段并在方向更改后保持对它们的引用的最佳方式是什么?

【问题讨论】:

    标签: android configuration orientation fragment


    【解决方案1】:

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

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多