0

私の Android アプリには、3 つの SherlockListFragments を持つ ViewPager を含む 1 つの SherlockFragmentActivity があります。ActionBarにさまざまなActionItemを表示したいことを知っています。たとえば、3 つの Fragment すべてに 1 つの SettingsItem があり、各 Fragment に異なる並べ替えタイプの一意の ActionItem があるとします。今、私はフラグメントでこのコードを使用します:

@Override
public void onCreateOptionsMenu( Menu menu, MenuInflater inflater )
{
    super.onCreateOptionsMenu( menu, inflater );

    inflater.inflate( R.menu.sort_menu, menu );
}

そして、私のアクティビティのこのコード:

@Override
public boolean onCreateOptionsMenu( Menu menu )
{       
    menu.add( Menu.NONE, PREFERENCES_ID, Menu.NONE, getString( R.string.menu_preferences ) )
        .setIcon( R.drawable.ic_menu_settings_dark )
        .setShowAsAction( MenuItem.SHOW_AS_ACTION_ALWAYS );

    return super.onCreateOptionsMenu( menu );
}

問題は、アプリを起動すると、最初のタブに ActionItems が表示されないことです。別のタブにスライドしてから再び戻ると、ActionItems が表示されます。親アクティビティによって作成された設定項目など、ActionItem が 1 つしか表示されないことがあります。各タブにいくつかの ActionItem を表示し、各タブにいくつかの固有の ActionItem を表示するための優れたソリューションを誰もが知っています。各タブにコードをコピーしたくありませんでした。

EDIT タブの位置は重要ではありません。最初のアプリの起動時に、実際のタブに ActionItems が表示されません。

4

0 に答える 0