我使用sherlockfragmentactivity,它具有ViewPager,两个片段和一个显示两个选项卡的ActionBar。我填充操作的项目从片段,但我要调用的方法ActionItem在屏幕旋转中丢失
setHasOptionsMenu(true);
级别比片段显示的动作条菜单项。 但是,当屏幕方向改变时,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动作条,我怎么可以让这些项目在动作条后屏幕方向改变?
我不知道它是否是最好的解决方案,但由于我有一个已知的固定数量的片段,我在我的SherlockActivity的'onCreate'方法中实例化它们,并在instanciation之后调用:'invalidateOptionsMenu();'然后在我的片段的'onActivityCreated'方法,在我必须做的那里之后,我调用'setHasOptionsMenu(true);'。因此,即使在屏幕方向之后,我的ActionItems也会显示在每个片段中。 – Kowlown 2012-03-20 13:31:00