我有一个用例,我从网络下载一些数据,然后填充一个列表,当用户点击它们时,会有另一个列表(同样来自网络的数据)。当用户点击第二个列表中的项目时,我想显示一个新屏幕。
到目前为止,我所做的是一个包含两个片段的活动(每个列表一个)。这两个片段都在CoordinatorLayout
内并位于工具栏下方。但是我要显示的新屏幕应该包含工具栏。因此,我无法使用我用于其他两个片段的FrameLayout
。
并且因为我希望用户在启动这个新屏幕时能够使用后退按钮移回到上一个状态(加载第二个列表并滚动直到用户点击一个项目)我不认为可以创建一个新的{ {1}}因为保持状态并不容易。
有没有办法可以在上一个和 Activity
之上创建一个新片段,如果我只是创建这个片段,那么因为操作系统会有任何性能成本必须同时绘制两个片段(但只显示一个)?请注意,第二个片段中已经加载了大量图像。
我的xml布局现在看起来像这样:
Toolbar
答案 0 :(得分:0)
将你的片段添加到后栈(重叠),
Fragment fragment = new Fragment();
getSupportFragmentManager().beginTransaction().replace(R.id.container,fragment,"")
.addToBackStack("").commit();
不允许你的片段在backstack中。
Fragment fragment = new Fragment();
getSupportFragmentManager().beginTransaction().replace(R.id.container,fragment,"").commit();
答案 1 :(得分:0)
您需要隐藏片段中的工具栏。
把
ActionBar actionBar = ((MainActivity) getActivity()).getActionBar();
actionBar.hide();
在片段的onCreate()
或onCreateView()
内,它会隐藏片段中的工具栏。
并在离开片段时再次显示toolbar
,您可以调用
@Override
public void onDestroyView (){
super.onDestroyView();
ActionBar actionBar = ((MainActivity) getActivity()).getActionBar();
actionBar.show();
}
希望它能够解决问题