1

Fragments在我的 main 中添加我的Activity。我可以删除或替换我FragmentFragment更改吗?

 MyFragment mList = new MyFrament();   
 getSupportFragmentManager()
.beginTransaction()        
.remove(mList)
.commit();

我应该在类的哪个生命周期方法中Fragment调用remove()orreplace()方法。我只是很困惑是否应该在onCreate()onCreateView()或中调用它们onActivityCreate()

4

1 回答 1

2

在这种情况下,我更了解你是从父级或类调用remove()and方法,而不是从.replace()ActivityFragmentActivityFragment

并且不需要实例化片段的新实例:

MyFragment mList = new MyFrament();

如果您只想使用SupportFragmentManager.

更新:

至于您的第二个问题,如果您当前正在Fragment从容器中删除 a (任何Layout您将片段放入的 R.id.containerForFragments 在下一个案例中),那么您已经实例化了它的一个实例Fragment并使用以下方法添加它:

getSupportFragmentManager()
.beginTransaction()        
.add(R.id.containerForFragments, mList, tag)
.commit();

命令。如您所见,您可以为您的片段指定一个标签,您可以稍后使用该标签Fragment从使用以下方法获取此实例FragmentManager

fragmentManager.findFragmentByTag(tag);

命令。

因此,要删除Fragment例如,请执行以下操作:

fragmentTransaction.remove(fragmentManager.findFragmentByTag(tag)).commit();
于 2013-04-07T19:17:51.410 回答