18

同じアクティビティで、必要な場合にのみActionBarを分割するようにAndroidに指示できるかどうか疑問に思っています。私のユースケースでは、デフォルトでは、バーにあるアクションは折りたたんでも問題ありませんが、アイテムを長押しすると、「タスクの編集」モードに入ります。このモードでは、アクションバーを使用してタスクを編集します。この「編集モード」で分割アクションバーを使用したいのですが、アイコンがすぐに表示されやすく、一般的なビューでは「分割されていない」アクションバーを維持します。これは単なる「設定」です。等

したがって、問題は、android:uiOptions="splitActionBarWhenNarrow"マニフェストでハードコードするのではなく、コードから設定できるかということです。

PS:私はActionBarSherlockを使用しています。

4

4 に答える 4

23

を呼び出すことで、ネイティブ アクション バーを分割モードに設定できますgetWindow().setUiOptions(ActivityInfo.UIOPTION_SPLIT_ACTION_BAR_WHEN_NARROW)

ウィンドウ UI オプションは設定後に読み取ることができないため、ActionBarSherlock では を呼び出す必要がありますgetSherlock().setUiOptions(...)。両方を呼び出す必要はありません。ABS は、適切な場合に上記を自動的に呼び出します。

これは、装飾ビューを作成する前に行う必要があります。が常に発生するようにこの呼び出しを配置する最も安全な場所は、を呼び出すonCreateのアクティビティメソッドです。super.onCreate

于 2012-07-22T18:46:36.820 に答える
3

ActionBarSherlockSamples の SplitActionModes.java を見てください。この例では、[開始] ボタンが押されると、分割アクション バーが画面の下部に表示されます。

これを呼び出して、分割アクションバーを表示します:

mMode = startActionMode(new AnActionModeOfEpicProportions());

mMode は ActionMode の一種であり、アクション バーを非表示にする場合は、'finish()' を呼び出す必要があります。

AnActionModeOfEpicPropotions は ActionMode.Callback の実装です。

private final class AnActionModeOfEpicProportions implements ActionMode.Callback {
    @Override
    public boolean onCreateActionMode(ActionMode mode, Menu menu) {
        // add your menu here...
    }

    @Override
    public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
        // handles your action menu clicked event
        return true;
    }
}
于 2012-07-22T17:28:29.913 に答える