ActionItem потерян при повороте экрана - PullRequest
5 голосов
/ 19 марта 2012

Я использую sherlockfragmentactivity, у которого есть ViewPager, два фрагмента и панель действий, отображающая две вкладки. Я заполняю элементы действий из фрагмента, но мне нужно вызвать метод

    setHasOptionsMenu(true);

для того, чтобы фрагмент отображал ActionI MenuItem. Но при изменении ориентации экрана элементы меню не отображаются.

Вот мой код для создания меню параметров в моем первом фрагменте:

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 после изменения ориентации экрана?

1 Ответ

0 голосов
/ 19 июля 2012

добавить следующую строку в FragmentActivity в файле манифеста android:configChanges="orientation"

ориентация автоматически обрабатывается самой системой. но я не знаю, погода это эффективный способ или нет.

...