我知道我可以启动FragmentTransaction以如下方式处理碎片:
FragmentManager fragMgr = getHaloFragmentManager();
FragmentTransaction fragTrans = fragMgr.beginTransaction();
MyFragment myFragment = new MyFragment();
fragTrans.replace(R.id.content, fragment, "myTag");
我也可以通过以下方式删除上述myFragment
:
fragTrans.remove(myFragment); //Note, here I use the same 'fragTrans'
但如果我创建一个新的FragmentTransaction
并删除myFragment
:
FragmentManager fragMgr2 = getHaloFragmentManager();
FragmentTransaction fragTrans2 = fragMgr.beginTransaction();
fragTrans2.remove(myFragment); //It won't remove myFragment, because it is another transaction
上述新建的FragmentTransaction fragTrans2
将NOT移除myFragment
。
我的问题是,如果我在某个地方获得myFragment
,而没有任何原始fragTrans
的引用,如何从myFragment
中获得FragmentTransaction
(处理myFragment
),以便使用原始(第一)FragmentTransaction
删除myFragment
?
在remove()之后调用.commit()吗?