NavigationDrawerFragment无法与AppCompat工具栏一起使用

Djo*_*dje 6 java android android-appcompat android-actionbar android-toolbar

我正在使用模板创建的NavigationDrawer(在启动新项目时).我正在尝试获得Material Design兼容性,因此我正在使用AppCompat v7.我按照这些说明将工具栏设置为我的ActionBar(即在我的工具栏上使用setSupportActionBar),然后在我的NavigationDrawerFragment中获取NPE(在onCreateView中)

 mDrawerListView.setAdapter(new ArrayAdapter<String>(
            getActionBar().getThemedContext(),
            android.R.layout.simple_list_item_activated_1,
            android.R.id.text1, ...
Run Code Online (Sandbox Code Playgroud)

现在我怀疑问题与片段内的getActionBar()方法有关:

   private ActionBar getActionBar() {
    return ((ActionBarActivity) getActivity()).getSupportActionBar();
}
Run Code Online (Sandbox Code Playgroud)

但是我不知道为什么 - 在调用了NavigationDrawerFragment上的setUp()之前,我在Activity的onCreate中调用了setSupportActionBar(工具栏)...

如果有人知道为什么会这样,请帮忙!

Djo*_*dje 6

似乎问题是片段的onCreateView在activity的onCreate之前被调用,因此没有设置ActionBar.我只是将有问题的代码移动到片段的onActivityCreated中,它就像一个魅力.