android - 配置(方向)更改时的嵌套 fragment

标签 android configuration orientation fragment

我无法理解 Android 如何处理方向变化时的 fragment (特别是嵌套 fragment )。

假设我有一个加载 fragment f1 的 Activity a1。然后,f1oncreateview() 方法中将 fragment f2 的多个实例加载到自身中。

现在我的 Activity a1 在 (oncreate()) 中包含此内容:

if (savedInstanceState != null)
    return;

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

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

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

最佳答案

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

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

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

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

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

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

关于android - 配置(方向)更改时的嵌套 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10505247/

相关文章:

elasticsearch - 日志文件不会出现在elasticsearch中

java - 继承和扩展类

android - 在android中单击键盘的完成按钮时将数据插入数据库

c++ - 如何手动将选项插入 boost.Program_options?

javascript - 配置 RequireJS 从多个 CDN 加载

iOS 8 屏幕旋转扰乱 View

objective-c - 尝试 segue 时旋转中断

iOS 容器 View Controller 添加 child 的纵向 View

android - 特定字体的文本从前面被截断

android - BitmapFactory.decodeFile(mCurrentPhotoPath, bmOptions) 返回 FileNotFoundException