Erste Schritte mit ActionBar ...
Für MenuItem.SHOW_AS_ACTION_IF_ROOM
steht in der Dokumentation:
Zeigen Sie dieses Element als eine Schaltfläche in einer Aktionsleiste, wenn das System entscheidet da ist Platz dafür.
Meine Frage ist, wie entscheidet das System, ob es Platz gibt, und kann ich diese Entscheidung beeinflussen / optimieren?
In meinem Fall habe ich ein paar Menüpunkte, die sich als Aktionsschaltflächen eignen würden - wenn genug Platz ist. Auf kleineren Bildschirmen nehmen sie genügend Platz, um den Titel der Actionbar ellipsenförmig zu machen. Ich würde es vorziehen, dass sie in diesem Fall in den Überlauf der Aktion gehen, anstatt den Titel zu verdecken.
PS. Ich verwende ActionBarSherlock und habe nicht überprüft, ob die native ActionBar genau gleich funktioniert. Wenn die native ActionBar "if-room" -Aktionselemente nicht zu sehr verkleinert, dann werde ich nach einem Fehler in ActionBarSherlock suchen.
Laut dem offiziellen Android Design Guide ( Ссылка ):
Die Aktionsleistenkapazität wird durch die folgenden Regeln gesteuert:
- Aktionsschaltflächen in der Hauptaktionsleiste dürfen nicht mehr als 50% der Balkenbreite einnehmen. Aktionsknöpfe in den unteren Aktionsleisten können den verwenden gesamte Breite.
- Die Bildschirmbreite in dichteunabhängigen Pixeln (dp) bestimmt die Anzahl der Elemente, die in die Hauptaktionsleiste passen:
- kleiner als 360 dp = 2 Symbole
- 360-499 dp = 3 Symbole
- 500-599 dp = 4 Symbole
- 600 dpi und größer = 5 Symbole
OK, das war nicht schwer herauszufinden, die Logik ist in ActionMenuPresenter.java
Es sieht so aus:
R.integer.abs__max_action_buttons
) Ich bin ActionBarSherlock-Benutzer, ich kann Ihnen vorschlagen, Whartons Quellen nach der Antwort zu durchsuchen.
Wie ich es verstehe, hat er sein on-Layout mit onMeasure-Methode, wo er prüft, ob die Titel-, Logo- und Menüelementansichten in der Aktionsleiste platziert werden können, indem sie ihre Zusammenfassungsbreite definieren.
Sie können seine Logik in der BaseMenuPresenter-Klasse überprüfen, wenn ich meinem Speicher vertrauen kann.
Tags und Links android android-actionbar