【发布时间】:2016-05-10 19:07:33
【问题描述】:
我有这个非常简单的代码:
InboxFragment ibf = new InboxFragment();
getFragmentManager().beginTransaction().add(ibf, InboxFragment.TAG);
getFragmentManager().beginTransaction().commit();
InboxFragment ib2 = (InboxFragment) getFragmentManager().findFragmentByTag(InboxFragment.TAG);
我不明白为什么我的ib2 为空。
在我的活动中管理不同片段的最佳方式是什么?因为我必须实现一个“模板”系统,每个模板都由一个片段来表示。我必须在模板之间切换。
- 第一次声明我的所有片段,并在模板更改时调用好的片段。 (如果模板没有改变,就不要记忆了)
- 在模板更改时添加片段。 (当我销毁片段时,我该如何回忆它,实例存储在哪里)。
感谢您的帮助。
【问题讨论】:
-
检查this。将您的标签添加到 backstack getFragmentManager().beginTransaction().addToBackStack(InboxFragment.TAG);
-
你为什么不打电话给
commit? -
如果我在 'add()' 之后调用
commit(),效果相同 -
尝试调用
executePending?