我遇到以下情况:
最初,我只在FrameLayout中添加一个片段,一切正常。接下来,我删除此片段,创建新的适配器,并将适配器绑定到SlidingTabLayout。一切都有效,但现在我需要将标签可见性设置为false,我用
执行此操作slidingTabLayout.setVisibility(View.GONE);
但我还需要用新片段替换当前视图。 通常我这样做:
getFragmentManager().replace(parent, newFragment);
但现在我不能这样做因为 getFragmentManager()。replace(ViewPager,newFragment); 不起作用。那我该怎么做呢?如果可能的话,我可以在Backstack中添加ViewPager替换吗?
答案 0 :(得分:0)
我找到了解决方案。我对我的布局进行了以下更新:
因此,当我需要隐藏所有选项卡和ViewPager时,为了在Frame Layout中膨胀新的Fragment,我会执行以下操作:
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();
}