android - fragment 和抽屉导航的不同工具栏

标签 android android-fragments android-toolbar navigation-drawer

请向我解释一下...我的Activity 中有Navigation Drawer,它与Toolbar(如ActionBar)同步。 Activity 的 fragment 很少,在不同的 fragment 中我需要使用不同的 AppBar 模式(一个视差,另一个简单)。所以,我认为我应该在每个带有 AppBar 和内容的框架中设置 CoordinatorLayout
但是我如何替换新工具栏上的最后一个工具栏以保存与抽屉的同步?还是方法不对,我需要改成其他方法?

最佳答案

不确定我的方法是否好,但我尝试将此公共(public)方法添加到我的 Activity 中:

public void setToolbar(Toolbar toolbar) {
    if(toolbar != null) {
        setSupportActionBar(toolbar);
        ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
                this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
        drawer.setDrawerListener(toggle);
        toggle.syncState();
    } else {
        drawer.setDrawerListener(null);
    }
}

我在所有 fragment 中添加了这个:

@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    ((MainActivity)getActivity()).setToolbar(toolbar);
}

@Override
public void onDestroyView() {
    ((MainActivity)getActivity()).setToolbar(null);
    super.onDestroyView();
}

它工作正常,但我不确定它是否会导致内存泄漏或任何其他性能问题。也许有人可以提供帮助?

关于android - fragment 和抽屉导航的不同工具栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35015182/

相关文章:

android - 在 fragment tabhost 中的选项卡之间切换

android - Lollipop 和 Pre Lollipop 设备的工具栏 TextColor 和溢出菜单颜色问题

java - 安卓工作室 : How to prevent up button in toolbar from pushing child view to the right?

java - 停止将十进制转换为 ascii

android - android获取当前时间的方法

android - 如何在多个 fragment 中处理相同的 onClick 操作而不重复代码?

android - 如何自定义Action Bar字幕字体?

android - Gson 不会从 GSON 插件转换自动生成的类

android - 使用膨胀 View 的 setEmptyView() 不起作用

android - 我需要将数据从 Activity 输出到 fragment