web-dev-qa-db-ja.com

Android上下にアクションアイテムがあるアクションバーを分割しますか?

一部のアクションアイテムをスプリットアクションバーの上部に指定し、他のアクションアイテムを下部に指定する方法はありますか?それとも、すべてまたは何もありません。それにより、すべてのアクション項目はスプリットの下部のみに移動しますか?

enter image description here

57
Ryan R

これは現在不可能です。

Android開発者Reto MeierとRoman NurikからAndroid Developer Office Hours: http://youtu.be/pBmRCBP56 -Q?t = 55m50s

26
Ryan R

これを解決するために、アクションバーとしてカスタムビューを使用しました。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    ActionBar actionBar = getActionBar();
    actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);

    View view = View.inflate(getApplicationContext(), R.layout.actionbar,
            null);
    actionBar.setCustomView(view);

}

そして、下部のバーについては、メニュービューまたは下部に表示するものを拡大しました。

 @Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.browser_main, menu);
    RelativeLayout relativeLayout = (RelativeLayout) menu.findItem(
            R.id.layout_item).getActionView();

    View inflatedView = getLayoutInflater().inflate(
            R.layout.media_bottombar, null);

    relativeLayout.addView(inflatedView);

    return true;
}

Androidマニフェストでは、次のように(Android:uiOptions = "splitActionBarWhenNarrow")も含めます。

<application
    Android:allowBackup="true"
    Android:icon="@drawable/ic_launcher"
    Android:label="@string/app_name"
    Android:theme="@style/AppTheme"
    Android:uiOptions="splitActionBarWhenNarrow" > ....
17
roomtek

この問題を解決するには、CustomViewを使用し、上部に表示されるメニュー項目をこのビューに追加します。

14
Sebastian

このオプションが有効な場合、Androidにはアクションバーを分割するオプションがあります。分割するかどうかは実行時にシステムによって決定されます

十分なスペースがない場合、システムによってアクションバーが自動的に分割されるように定義できます。AndroidManifest.xmlファイルのアプリケーションアクティビティの宣言でAndroid:uiOptions = "SplitActionBarWhenNarrow"パラメーターを使用してアクティブにできます。

1
BoldHD

疑わしい。ただし、アクションバーでメニュー項目を作成するときにこれらを組み合わせて実験することができます。

MenuItem.SHOW_AS_ACTION_ALWAYS
MenuItem.SHOW_AS_ACTION_NEVER
MenuItem.SHOW_IF_ROOM
1
Matthew Reilly