web-dev-qa-db-fra.com

Android Fractionner la barre d'action avec des éléments d'action en haut et en bas?

Existe-t-il un moyen de spécifier certains éléments d'action dans la partie supérieure de la barre d'actions fractionnée tandis que les autres vont vers le bas? Ou est-ce tout ou rien, où tous les éléments d'action vont uniquement dans la partie inférieure de la division?

enter image description here

57
Ryan R

Ce n'est actuellement pas possible.

Voir la réponse directement de Android développeurs Reto Meier et Roman Nurik pendant les Android Heures d'ouverture du développeur: http://youtu.be/pBmRCBP56 -Q? T = 55m50s

26
Ryan R

Pour résoudre ce problème, j'ai utilisé une vue personnalisée comme barre d'action:

@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);

}

puis pour la barre du bas j'ai gonflé ma vue de menu ou tout ce que vous voulez voir apparaître en bas:

 @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;
}

Dans le Android Manifest, j'inclus également (Android: uiOptions = "splitActionBarWhenNarrow") comme ceci:

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

J'ai résolu ce problème en utilisant une vue personnalisée et en ajoutant les éléments de menu, qui devraient s'afficher en haut, à cette vue.

14
Sebastian

Si cette option est activée, Android a la possibilité de fractionner la barre d'action. La décision de fractionner est décidée par le système au moment de l'exécution)

Vous pouvez définir que la barre d'actions doit être automatiquement divisée par le système si l'espace disponible est insuffisant.Vous pouvez l'activer via le paramètre Android: uiOptions = "SplitActionBarWhenNarrow" dans la déclaration de l'activité de votre application dans le fichier AndroidManifest.xml.

1
BoldHD

Douteux. Cependant, vous pouvez voir une combinaison de ces éléments lors de la création de vos éléments de menu dans la barre d'actions pour expérimenter.

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