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

时间:2014-10-26 23:35:28

标签: java android android-actionbar android-appcompat android-toolbar

我正在使用模板创建的NavigationDrawer(启动新项目时)。 我正在尝试获得Material Design兼容性,因此我正在使用AppCompat v7。 我跟着these instructions设置工具栏作为我的ActionBar(即在我的工具栏上使用setSupportActionBar),然后在我的NavigationDrawerFragment中获取一个NPE(在onCreateView内)

 mDrawerListView.setAdapter(new ArrayAdapter<String>(
            getActionBar().getThemedContext(),
            android.R.layout.simple_list_item_activated_1,
            android.R.id.text1, ...

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

   private ActionBar getActionBar() {
    return ((ActionBarActivity) getActivity()).getSupportActionBar();
}

但我不知道为什么 - 我在调用了onGreate的onSupe上调用setUp()之前调用了setSupportActionBar(工具栏)...

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

2 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:4)

只需将getActionBar().getThemedContext()替换为getActivity()