如何从布局中删除特定片段

时间:2019-06-17 10:30:27

标签: android android-layout android-fragments fragment-backstack

我在家庭布局中有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个片段。

我的英语不好,我想要一些详细的答案。谢谢

1 个答案:

答案 0 :(得分:0)

Fragment fragment = getSupportFragmentManager().findFragmentByTag(TAG_FRAGMENT);
if(fragment != null)
getSupportFragmentManager().beginTransaction().remove(fragment).commit();

这必须工作。