嗯,我从你的陈述中猜测,你似乎在试图加载。在活动中出现碎片,并且不希望看到工具栏和选项卡栏!你使用的方法是正确的!使用visibility Goe是实现这一目标的方法,我认为也是这样,但问题是代码的位置!下面是你应该怎么做!
在您的容器活动中,您尝试在执行以下操作后加载片段
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar); // Setting/replace toolbar as the ActionBar
TabLayout tabLayout = (TabLayout)findViewById(R.id.tabs);
tabLayout.addTab(tabLayout.newTab().setText(getResources().getText(R.string.tab0)));
tabLayout.addTab(tabLayout.newTab().setText(getResources().getText(R.string.tab1)));
tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
这就是你要做的!简单地说,在您的fragmentTransaction将片段提交到容器中之后,您可以这样做
FragmentManager mFragManager = getSupportFragmentManager();
FragmentTransaction mFragTranscation = mFragManager.startTransaction();
mFragTranscation.add(R.id.containerId,yourFragObject());
mFragTransaction.commit();
//after that you can do the visibility GONE MAGIC
toolbar.setVisibility(View.GONE);
tabLayout.setVisibility(View.GONE);
如果您想在片段中隐藏活动的设计部分,那么下一种方法是使用ONACTIVITYCREATED()函数,但还必须有一种方法来访问片段中容器活动的视图,这可以通过此方法完成。
但是,如果您希望在打开片段时继续进行活动的标题设计,上述编写的代码将有所帮助!快乐编码
此外,如果您想返回任何隐藏的内容,可以使用OnBackPressed函数!为你做这件事!例如,如果您想看到当主片段开始运行并且工具栏等应该返回时,您应该重写OnBackPressendMethod,在那里您可以检查哪个片段当前正在从堆栈中加载回来,如果它是“必需的”,那么只需对您想要返回屏幕的片段使用VISIBLITY(VIEW.VISIBLE)!
在MainFragment中重写
@Override
public void onBackPressed() {
//here you can call the things back if the frag required is loaded
}
//尝试以下方法添加片段并将其名称添加到堆栈中
private void replaceFragment (Fragment fragment){
String backStateName = fragment.getClass().getName();
FragmentManager manager = getSupportFragmentManager();
boolean fragmentPopped = manager.popBackStackImmediate (backStateName, 0);
if (!fragmentPopped){ //fragment not in back stack, create it.
FragmentTransaction ft = manager.beginTransaction();
ft.replace(R.id.content_frame, fragment);
ft.addToBackStack(backStateName);
ft.commit();
}
}
这样你就可以做更多的检查这里的线程
STACK_THREAD