我有3个片段,如片段A,片段B,片段C.最初片段A加载,片段A加载片段B,同样片段B再次添加片段C.现在当我点击片段C中的背压或任何buttoms时,它直接显示片段A.为什么它没有显示片段B?我只是想删除当前的片段c并显示片段b,但请帮助我。我的代码是什么。
{{1}}
答案 0 :(得分:2)
您正在调用活动片段管理器来弹出Backstack,但似乎这个管理器"传播"流行儿童经理
更改您的onClick
代码,如下所示
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
FragmentManager manager = getFragmentManager();
manager.popBackStackImmediate();
}
});
答案 1 :(得分:0)
在您的代码中,您没有向backstack添加任何片段,您只是将片段添加到活动中,因此您需要更改此行: - fragmentTransaction.addToBackStack(null); with this : - fragmentTransaction.addToBackStack("使用您的唯一字符串");
将此添加到您的两个片段事务中。 然后提交。
答案 2 :(得分:0)
使用此
getFragmentManager().popBackStackImmediate();
代替
FragmentManager manager = getActivity().getSupportFragmentManager();
manager.popBackStackImmediate();
bacause,它应该仅从活动中使用,而不是从片段中使用。