片段管理器中仍然存在已删除的片段

时间:2019-03-07 16:18:46

标签: android android-tv

我有一个错误,其中一个片段只是拒绝被删除。我在这里浏览过许多其他文章,标题几乎相同,但是没有一种解决方案适用于我的问题。

像这样添加片段:

CustomFragment fragment = new CustomFragment();

fragmentManager.beginTransaction().replace(R.id.fragment_container, fragment, "fragment_tag").commit();

它不会添加到Backstack。

然后将其删除,如下所示:

Fragment fragmentToRemove = fragmentManager.findFragmentByTag("fragment_tag");
if (fragmentToRemove != null) {
    fragmentManager.beginTransaction().remove(fragmentToRemove).commit();
}

要确保我检查:

fragmentManager.getFragments() -> empty
fragmentManager.getBackStackEntryCount() -> 0

看起来很好,很花哨,对不对?但是当我打电话时:

fragmentManager.findFragmentByTag("fragment_tag");

我仍然找到刚删除的相同片段,具有相同的ID。是什么赋予了?我已经失去了对所有尝试过的东西的跟踪,足以说出像popBackStackImmediate()和commitNow()这样的显而易见的东西不起作用。希望其他人之前遇到过这种情况,并且可以告诉我我所缺少的。

0 个答案:

没有答案