【发布时间】:2015-06-04 09:41:03
【问题描述】:
我有一个Fragment,里面有MapView。我使用以下代码将Fragment 添加到容器中:
Fragment fragment = new MyLocationFragment()
String tag= fragment.getClass().getName();
FragmentTransaction transaction = fm.beginTransaction();
transaction.setCustomAnimations(R.anim.slide_in_right, R.anim.slide_out_left,
R.anim.slide_in_left, R.anim.slide_out_right);
transaction.replace(R.id.container, fragment, tag);
transaction.addToBackStack(null);
transaction.commit();
现在当用户按下返回时,这个Fragment 应该从FragmentManager 中删除。但是如果执行这段代码:
Fragment fragment = getSupportFragmentManager().findFragmentByTag(MyLocationFragment.class.getName());
它永远不会返回null,即使我替换了同一个容器中的其他片段。如何从FragmentManager 中删除Fragment?我在这里做错了吗?
【问题讨论】:
-
有人知道什么时候应该从 FragmentManager 中删除 Fragment 吗?
-
它应该在它被破坏后被移除。带有 MapView 的 Fragment 被销毁,但从未从 FragmentManager 中删除,真的很奇怪!
-
但是您的代码中的删除行在哪里??
-
当它的事务被添加到 backStack 时,它会在按下 Back 时被移除。
-
所以就像
transaction.remove(fragment)??
标签: android android-fragments android-mapview