如何使用AppCompat / Toolbar和Fragments实现onCreateOptionsMenu

时间:2015-01-11 16:45:00

标签: android android-fragments android-appcompat android-toolbar

我有一个扩展ActionBarActivity并使用新工具栏的Activity,在我填充上下文菜单的活动中,当它显示工具栏被正确隐藏时,因为我使用了以下内容:

<item name="windowActionModeOverlay">true</item>

然后我动态创建一个Fragment,Fragment也有以下选项:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setHasOptionsMenu(true);
}

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
   ...
}

然后,因为我有一个列表,我以这种方式添加一个上下文菜单:

mListView.setMultiChoiceModeListener(new AbsListView.MultiChoiceModeListener() {
   ...
}

问题是片段上下文菜单看起来行为不同,我需要使用&#34; android:windowActionModeOverlay&#34;为了自动隐藏工具栏,还忽略appcompat参数,例如&#34; app:showAsAction&#34;。

如何在片段中正确实现appcompact上下文菜单?我在Appcompat库的源代码中看到过一次ActionBarFragment,但它不在master分支或已发布的库中。

我还没有使用抽屉。

1 个答案:

答案 0 :(得分:0)

自己找到问题,而不是使用:

mActionMode = getActivity().startActionMode(contextMenuListener);

我不得不使用:

mActionMode = getActivity().getSupportActionBar().startActionMode(contextMenuListener);

当然,实现支持库ActionMode而不是内置的。