5

ViewPager、2 つの Fragment、および 2 つのタブを表示する ActionBar を持つ sherlockfragmentactivity を使用します。フラグメントからアクション項目を設定しますが、メソッドを呼び出す必要があります

    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 に保持するにはどうすればよいですか?

4

1 に答える 1

0

マニフェスト ファイルの FragmentActivity に次の行を追加します。 android:configChanges="orientation"

方向は、システム自体によって自動的に処理されます。しかし、それが効率的な方法であるかどうかはわかりません。

于 2012-07-19T12:10:20.843 に答える