Android片段互相攻击

时间:2014-09-19 09:05:30

标签: android android-fragments

我现在已经处理过片段了一段时间,但我经常遇到一个让我烦恼的问题。碎片有时会相互遮挡。现在,我设法为此分离了一个用例,它是这样的:

Add Fragment A(也使用名称为"backstack_state"的{​​{3}})

带有Fragment A

addToBackStack Fragment B(使用addToBackStack

使用Fragment B

Fragment C替换为addToBackStack 没有

在给定点使用popBackStack("backstack_state", 0),问题就出现了:

Fragment A之前会弹出背斜,但Fragment CFragment A重叠,两者同时可见。这是正常行为,还是我犯了错误?

这里还有一句话:所有片段都有透明的背景。

谢谢!

1 个答案:

答案 0 :(得分:1)

这是因为顶部片段(在这种情况下为片段C)未被删除。您必须先在片段事务中删除它。试试这个:

FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
Fragment topFragment = fragmentManager.findFragmentById(R.id.fragment_container);
if (topFragment != null) {
    fragmentTransaction.remove(topFragment);
}    
fragmentTransaction.commit();
fragmentManager.popBackStack("backstack_state", 0);