在LinearLayout中我有一个FragmentContainer,下面是一个包含几个RadioButtons的RadioGroup。当检查更改时,我将用不同的片段替换容器中的当前片段。如果检查进行缓慢,切换就会发生。
现在考虑:
RadioButtonA =>检查用FragmentA替换容器
RadioButtonB =>检查用FragmentB替换容器
现在容器有FragmentA
如果我改为RadioButtonA-> RadioButtonB,用FragmentB替换FragmentA ,
如果我从RadioButtonB-> RadioButtonA 切换,它应该瞬间将片段B替换为FragmentA
但我得到例外说法:
java.lang.IllegalStateException:已添加片段:FragmentA
答案 0 :(得分:0)
现在工作正常。问题是在更换片段后我正在设置过渡
fragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
我假设当我切换到FragmentB时,trament(对于FragmentA)仍然会运行。
在转换完成之前,不会从backstack中删除FragmentA。此时如果尝试再次添加FragmentA,它会崩溃,因为FragmentA尚未被删除
所以不要设置任何过渡