我有一个Activity
,其中包含我应用中几乎所有片段的Fragment
容器。在某些Fragment
中,工具栏需要更改,例如标题,图片,主页按钮..这是活动中工具栏的代码:
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
menu.clear();
getMenuInflater().inflate(R.menu.menu_toolbar_top, menu);
boolean drawerOpen = drawerLayout.isDrawerOpen(navigationView);
searchBtnMenu = menu.findItem(R.id.menu_toolbar_top_menu_searchBtn);
messageMenu = menu.findItem(R.id.menu_toolbar_top_menu_message);
searchView = (SearchView) MenuItemCompat.getActionView(searchBtnMenu);
searchView.setQuery("", true);
drawerMenu = menu.findItem(R.id.menu_toolbar_top_menu_drawer);
ImageView searchClose = (ImageView) searchView.findViewById(android.support.v7.appcompat.R.id.search_close_btn);
searchClose.setColorFilter(
NewsfeedActivity.this.getResources().getColor(R.color.white),
android.graphics.PorterDuff.Mode.SRC_IN);
....
我已经覆盖了后退按钮并返回Toolbar
(主页)以弹出后台。
我想到了几种解决方案:
设置活动内的所有内容。每当需要替换Fragment
时,我会检查Fragment
的标记并将Toolbar
切换为某个Fragment
Toolbar
在需要的每个片段中覆盖onPrepareOptionsMenu
。弹出backstack时,活动有一种方法可以检查Fragment
面前的Toolbar
,并为Fragment
设置Toolbars
喜欢... 10个或更多GONE
可见度Fragment
,并在需要时让它们可见。
第3点是......最后的手段..而且我也不确定性能。
那么..有关在这里做什么的任何建议吗?
如果我忘了添加任何细节,请告诉我:D
更新:
Toolbar
添加工具栏即可。所以我有n个Fragment
,其中n是__file__
..