fragmentManager.popBackStack(tag,0)不起作用,

时间:2017-01-05 08:19:12

标签: android android-fragments

我使用replace()addToBackStack()来显示片段,使用popBackStack(tag,0)来显示片段。但在使用replace()之前,我会尝试找出fragmentManager.findFragmentByTag()是否可以找到相同的片段,如果找到它,我会将popBackStack(tag,0)替换为replace()

例如: 活动开始 - >替换AFragment并添加到BackStack->点击按钮以替换BFragment并添加到BackStack->单击按钮到popBackStack(AFragment.tag,0)以弹出{{1}并返回BFragment

如果例外,它适用于AFragmentreplace()pop()replace()pop()replace() ...,但有时它适用于pop()replace(),{突然pop(),所以fragmentManager.findFragmentByTag!=null,然后没有错误,它不起作用}。

我尝试调试,发现pop()中的mBackStack.size()mActive.size()不相等。当我想显示FragmentManagerImp时,BFragment包含A和B片段,但mActive仅包含mBackStack(替换A片段的事务)。因为我可以在AFragment中找到BFragment(使用mActive),但找不到关于fragmentManager.findFragmentByTag的交易,因此BFragment失败。

pop()

0 个答案:

没有答案