我使用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