4

Ich habe ein Layout mit zwei Fragmenten und beide Fragmente haben ihre eigenen Aktionsleisten, von denen jede ihre eigenen Aktionselemente und Menüs hat. Wenn sich meine App im Querformat befindet und beide Fragmente auf dem Bildschirm angezeigt werden, sieht es so aus, als ob das Framework die Aktionsleiste auf dem "rechten" (oder dem zweiten Fragment) anzeigt, was das Fragment auf der linken Seite bedeutet (1. Fragment)) fehlen seine Aktionspunkte und Menüoptionen.Umgang mit Aktionsleisten mit zwei Fragmenten

Alles funktioniert gut, wenn die App im Hochformat ist, also bin ich nicht sicher, ob ich etwas tun sollte, um die Fragmente zu behandeln, wenn beide angezeigt werden. Vielen Dank.

EDIT

In jedem meiner Fragmente Ich verwende diesen Code Menüpunkte auf der Aktionsleiste hinzuzufügen:

In Fragment 1:

@Override 
    public void onCreateOptionsMenu(final Menu menu, final MenuInflater inflater) { 
     inflater.inflate(R.menu.fragment_menu_1, menu); 
     super.onCreateOptionsMenu(menu, inflater); 
    } 

In Fragment 2:

UPDATE:

Scheinbar mit setRetainInstance(true) wurde verursacht, die Menüs nicht zu aktualisieren. Ich habe das verwendet, weil ich eine AsyncTask habe, die eine Ausnahme auslöst, wenn das Gerät gedreht wurde. Also habe ich ein Problem behoben, aber ein anderes Problem gelöst.

+0

Es gibt einen Beitrag hier, um die Antwort auf diese Frage zu geben http://www.grokkingandroid.com/adding-action-items-from-within-fragments/ – firebear

+0

[Fragmente in Action Bar Tutorial] (http: // v4all123.blogspot.in/2013/07/simple-fragments-tutorial.html). – Gunaseelan

Antwort

9

Ich denke, Sie denken falsch darüber nach. Die Aktionsleiste wird nicht als Teil eines Fragments angezeigt, sondern als Teil der Aktivität. Wenn Sie in Ihren Fragmenten angeben, dass Sie über setHasOptionsMenu(true) Aktionselemente bereitstellen, werden alle als Teil der Aktionsleiste angezeigt. Sie können dann die entsprechende Aktion ausführen, indem Sie onOptionsItemSelected(MenuItem item) überschreiben.

+0

Überprüfen Sie das OP, ich habe Code hinzugefügt, aber ich bin ein Menü Layout in beiden meiner Fragmente in OnCreateOptionsMenu aufblasen. Sollte die Aktionsleiste dann nicht beide Menüs anzeigen? –

+0

hast du 'setHasOptionsMenu (true)' in beiden aufgerufen? –

+0

Ja, weil im Hochformat, wenn sich die Fragmente auf verschiedenen Bildschirmen befinden, das Menü jedes Fragments korrekt angezeigt wird. Ich sollte auch beachten, dass ich ActionBarSherlock verwende, nicht sicher, ob das einen Unterschied macht. –