如何在默认导航抽屉Activity中实现工具栏?

How to implement the Toolbar in the default Navigation Drawer Activity?

我正在使用 Android Studio 1.0.1。我创建了一个新的 Navigation Drawer Activity,它默认由这个 IDE 提供。它创建了 2 Java 个文件 -

除此之外,它还为我提供了 3 个布局文件 -

现在我想做的是隐藏操作栏,取而代之的是获得工具栏,因为我想做一些详细的设计。为此,我采取了以下步骤 -

但不幸的是,每当我启动 HomePage activity 时,我的应用程序都会强制关闭。有什么建议么? Logcat

activity_home_page.xml

HomePage.java

NavigationDrawerFragment.java

custom_toolbar.xml

问题:

在你的片段中你有:

toolbar = (Toolbar) getActivity().findViewById(R.id.toolbar);
...
toolbar.getContext()

然而,当您调用 findViewById 时,activity 尚未调用 setContentView。这意味着工具栏尚未膨胀并且 toolbar 设置为 null。因此 toolbar.getContext() 抛出 NPE。

修复:

而不是 toolbar.getContext() 只需调用 getActivity() 即可获取上下文。


如果您的片段确实需要工具栏,您应该在 activity 的 onCreate 之后调用它。一个好的地方是 onActivityCreated:

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    toolbar = (Toolbar) getActivity().findViewById(R.id.toolbar);
}