从backStack删除片段

时间:2020-04-18 21:49:23

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

我有带3个标签的ViewPager。 Tab(2)包括2个片段(A)->(B)。 Tab(3)包括2个片段(C)->(D)。

Tab(1)
Tab(2) --> (A) --> (B) 
Tab(3) --> (C) --> (D)

在创建(A)时,正在检查变量“ isUserLogged”(是/否)。 我的问题是:Tab(2)被保存在ViewPager Backstack中。 因此,当我点击(D)中的按钮时,我想删除Tab(2),以便在再次创建它时会再次检查“ isUserLogged”。 这是我替换片段的方式:

FragmentTransaction trans = getChildFragmentManager().beginTransaction();
        trans.replace(R.id.hostsUlogged_container, new FragmentHostProfile(), "HostUnlogged-HostProfile");
        trans.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
        trans.addToBackStack("hostUnlogged_screen");
        trans.commit();

如何删除带有标签(“ hostUnlogged_screen”)的特定片段? 谢谢。

1 个答案:

答案 0 :(得分:1)

您可以按标签删除特定片段,如下所示:

FragmentManager fm = getChildFragmentManager();
Fragment fragment=fm.findFragmentByTag("hostUnlogged_screen");
fm.beginTransaction().remove(fragment).commit();