Wie kommt es zu dieser merkwürdigen Bedingung, wenn das Symbol des Menüeintrags im Überlaufmenü der Werkzeugleiste angezeigt wird?

8

Ich möchte ein Überlaufmenü in der Symbolleiste anzeigen (AppCompat-v7: 22.1.1), unten ist meine menu_main.xml.

%Vor%

Nachdem ich meine App ausgeführt habe, wird das Symbol des Menüelements nicht angezeigt. Dann habe ich Folgendes versucht: Lösung , fügen Sie eine Methode override onMenuOpened () in meinem Activty hinzu (erweitert von AppCompatActivity),

%Vor%

Aber nach dem Ausführen dieser Demo finde ich, dass das Symbol immer noch nicht angezeigt wird.

Von diesem gemeldeten Problem weiß ich, dass AppCompatActivity.onMenuOpened nicht aufgerufen wird mehr in 22.x, aber es ist seltsam, dass wenn ich auf die Hardware-Menü-Taste in Genymotion klicke, erscheint das Menü unten und mit dem Symbol,

Nachdem ich das Menü geschlossen habe, klicke ich erneut auf die Überlauf-Schaltfläche in der Symbolleiste, diese Symbole im Menü erscheinen,

wie seltsam es ist! Warum passiert das?

    
wqycsu 06.05.2015, 12:12
quelle

2 Antworten

21

Für die AppCompactActivity können Sie festlegen Überprüfen Sie stattdessen das onPrepareOptionsPanel ().

%Vor%     
Alécio Carvalho 19.05.2015, 23:10
quelle
0

Hier ist eine Modifikation der ausgezeichneten Antwort von Alécio Carvalho. Diese Änderung ist für den Fall, wenn es notwendig ist, Symbole nicht in der Aktionsleiste der Haupt-App, sondern in benutzerdefinierten Symbolleisten in jedem separaten Fragment (ich wollte eine separate Symbolleiste mit eigenem Titel und eigene angepasste Aktion) Menü für jedes Fragment, nicht einfach neue Elemente zur Aktionsleiste der gesamten AppCompatActivity hinzufügen).

Für den erwähnten Fall ist die Fragment-Klasse wie folgt:

%Vor%

Dann my_fragment_layout.xml inklusive Menü wie folgt

%Vor%

Eine typische Menüdatei wurde als res/menu/my_fragment_menu.xml implementiert. Das Fragment wurde im Layout von mainActivity einfach als

hinzugefügt %Vor%     
Elia12345 31.07.2016 19:10
quelle

Tags und Links