我在家庭布局中有4个片段。我想在用户按下相应按钮时删除特定片段。当我使用popBackStack()
执行此操作时,它将删除用户最近添加的片段。所以我该如何从屏幕上删除特定的片段。
我要在“按钮单击”上添加片段,我也有3个相同的添加按钮。
addFragment_1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
FragmentManager fm = getSupportFragmentManager();
fm.beginTransaction()
.add(R.id.Fragment_container_1, new Fragment_1(), "Frag 1")
.addToBackStack("Frag 1")
.commit();
}
});
然后,我想通过单击其他按钮来删除此片段。还添加了3个删除按钮。
removeFragment_1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getSupportFragmentManager().popBackStack();
}
});
我有4个添加按钮和4个删除按钮。当我在屏幕上添加所有4个片段,然后按第一个删除按钮时,它将删除第四个片段,然后3> 2> 1,所有4个删除按钮都将执行相同操作。我想要1个删除按钮仅删除一个相应的片段。
我也尝试popBackStack ("Frag 1", 0)
除去所有1个片段,片段1,而当我尝试popBackStack("Frag 1", FragmentManager.POP_BACK_STACK_INCLUSIVE)
除去所有4个片段。
我的英语不好,我想要一些详细的答案。谢谢
答案 0 :(得分:0)
Fragment fragment = getSupportFragmentManager().findFragmentByTag(TAG_FRAGMENT);
if(fragment != null)
getSupportFragmentManager().beginTransaction().remove(fragment).commit();
这必须工作。