我使用了一个 sherlockfragmentactivity,它有一个 ViewPager、两个 Fragment 和一个显示两个选项卡的 ActionBar。我从片段中填充操作项,但我必须调用该方法
setHasOptionsMenu(true);
为了比片段显示 Actionbar MenuItem。但是当屏幕方向改变时,MenuItems 不会显示。
这是我在第一个片段中创建选项菜单的代码:
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
menu.add(R.string.action_refresh).setIcon(R.drawable.ic_menu_refresh)
.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem item) {
refresh();
return false;
}
}).setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_IF_ROOM);
menu.add(R.string.action_add_a_file).setIcon(R.drawable.ic_menu_upload)
.setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_IF_ROOM);
menu.add(R.string.action_settings).setIcon(android.R.drawable.ic_menu_preferences)
.setIntent(new Intent(getSherlockActivity(), SettingsActivity.class))
.setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_NEVER | MenuItem.SHOW_AS_ACTION_WITH_TEXT);
}
有没有办法从 SherlockFragment 正确地将项目添加到操作栏,以及如何在屏幕方向更改后将这些项目保留在 ActionBar 中?