SlidingTabLayout:替换为片段

SlidingTabLayout: replace with fragment

我有以下情况:

最初,我只向 FrameLayout 添加一个片段,一切正常。接下来我删除这个片段,创建新的适配器,并将适配器绑定到 SlidingTabLayout。一切正常,但现在我需要将选项卡可见性设置为 false,我使用

执行此操作
slidingTabLayout.setVisibility(View.GONE);

但我还需要用新片段替换当前视图。 通常我这样做:

getFragmentManager().replace(parent, newFragment);

但现在我不能这样做,因为 getFragmentManager().replace(ViewPager, newFragment); 不起作用。那我该怎么做呢?如果可能的话,我可以在后台添加 ViewPager 替换吗?

我找到了解决办法。我对布局进行了以下更新:

  • 线性布局
    • 工具栏
    • 线性布局(id:parentScroll)
      1. SlidingTabLayout
      2. ViewPager
    • 框架布局(id:parent)

因此,当我需要隐藏所有选项卡和 ViewPager 时,为了在框架布局中膨胀新的片段,我执行以下操作:

 parentScroll.setVisibility(View.GONE);
 MyFragment myFragment= new MyFragment ();
 FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
 transaction.add(R.id.parent, myFragment, "MYTAG");
 transaction.commit();

在这个新片段的 onBackPressed 中:

 MyFragment myFragment= (MyFragment) getSupportFragmentManager.findFragmentByTag("MYTAG");
 if (myFragment!= null && myFragment.isVisible()) {
     parentScroll.setVisibility(View.VISIBLE);
     getSupportFragmentManager().beginTransaction().remove(myFragment).commit();
 }