【发布时间】:2016-01-14 20:43:33
【问题描述】:
我正在使用此代码将Fragment 添加到我的布局中:
getSupportFragmentManager().beginTransaction()
.replace(R.id.frameLayout, newFragment, newFragment.getClass().getName())
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
.commit();
newFragment 是我想要显示的新 Fragment。
我用来从FragmentManager 中删除片段的下一个代码:
Fragment fragment = getSupportFragmentManager().findFragmentByTag(newFragment.getClass().getName());
if(fragment != null) {
getSupportFragmentManager()
.beginTransaction()
.remove(fragment)
.commit();
}
但是没有用!如果我想从FragmentManager 和findFragmentByTag 获取相同的片段,它会返回它。
我的问题是如何从FragmentManager 中删除我的Fragment?
【问题讨论】:
-
您是否收到错误消息?或者你的片段只是留在你的屏幕上?
remove被执行了吗? -
@Amy 没有任何错误。
remove已执行,但我仍然可以使用findFragmentByTag获取此片段 -
Fragment保留在FragmentManager中,如果removed,它不会被销毁。 -
抱歉,只是一个快速的:没关系,如果您使用替换并且您也想删除该片段?