ActionItem在屏幕旋转时丢失

Kow*_*own 5 android fragment actionbarsherlock

我使用了一个sherlockfragmentactivity,它有一个ViewPager,两个Fragment和一个显示两个标签的ActionBar.我填充片段中的操作项,但我必须调用该方法

    setHasOptionsMenu(true);
Run Code Online (Sandbox Code Playgroud)

按片段显示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);

}
Run Code Online (Sandbox Code Playgroud)

有没有办法从SherlockFragment正确添加项目到操作栏?如何在屏幕方向更改后将这些项目保留在ActionBar中?

Kri*_*tha 0

在清单文件中的 FragmentActivity 中添加以下行 android:configChanges="orientation"

方向由系统本身自动处理。但我不知道这是否是一种有效的方法。