Android - 为多个片段设置工具栏

时间:2016-04-06 06:35:15

标签: android android-fragments android-toolbar

我有一个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(主页)以弹出后台。

我想到了几种解决方案:

  1. 设置活动内的所有内容。每当需要替换Fragment时,我会检查Fragment的标记并将Toolbar切换为某个Fragment Toolbar

  2. 在需要的每个片段中覆盖onPrepareOptionsMenu。弹出backstack时,活动有一种方法可以检查Fragment面前的Toolbar,并为Fragment设置Toolbars

  3. 喜欢... 10个或更多GONE可见度Fragment,并在需要时让它们可见。

  4. 第3点是......最后的手段..而且我也不确定性能。

    那么..有关在这里做什么的任何建议吗?

    如果我忘了添加任何细节,请告诉我:D

    更新:

    1. 只需向每个Toolbar添加工具栏即可。所以我有n个Fragment,其中n是__file__ ..
    2. 的编号

0 个答案:

没有答案