Vor Android 3.0 (Honeycomb) enthielten alle Android-basierten Geräte eine spezielle Menütaste. Als Entwickler können Sie mit der android menu button weg alle für den Benutzer relevanten Optionen anzeigen, oft über das integrierte Optionsmenü der Aktivität. Honeycomb entfernte die Abhängigkeit von physischen Schaltflächen und führte die ActionBar-Klasse als Standardlösung ein, um Aktionen aus den Benutzeroptionen sofort sichtbar und schnell aufrufbar zu machen. Um eine möglichst intuitive und konsistente Benutzerführung in Ihren Anwendungen zu gewährleisten, sollten Sie Ihre Designs nicht mehr über die Menütaste, sondern über die Aktionsleiste bewegen.
Das ist kein neues Konzept – das Action-Bar-Muster gibt es auf Android schon vor Honeycomb. Wenn Ice Cream Sandwich auf mehr Geräte verteilt wird, ist es wichtig, dass Sie anfangen, Ihre Designs in die Aktionsleiste zu migrieren, um eine konsistente Android-Benutzererfahrung zu fördern.
Sie könnten sich Sorgen machen, dass es zu viel Arbeit ist, die Aktionsleiste zu verwenden, da Sie Versionen von Android unterstützen müssen, die älter als Honeycomb sind. Für die meisten Anwendungen ist es jedoch recht einfach, da Sie die Menüschaltfläche auf Vor-Honeycomb-Geräten weiterhin unterstützen können, aber auch die Aktionsleiste auf neueren Geräten mit nur wenigen Zeilen Codeänderungen bereitstellen können.
Wenn ich diesen ganzen Beitrag in einem Satz zusammenfassen müsste, wäre es das: Setzt targetSdkVersion auf 14 und, wenn ihr das Optionsmenü benutzt, taucht ein paar Aktionen in der Aktionsleiste mit showAsAction=”ifRoom” auf.
Nennen Sie es nicht ein Menü.
Nicht nur, dass sich Ihre Anwendungen nicht mehr auf die Hardware-Menü-Taste verlassen sollten, sondern Sie sollten auch aufhören, über Ihre Aktivitäten nachzudenken, indem Sie eine “Menü-Taste” verwenden. Ihre Aktivitäten sollten Schaltflächen für wichtige Benutzeraktionen direkt in der Aktionsleiste (oder an anderer Stelle auf dem Bildschirm) bereitstellen. Diejenigen, die nicht in die Aktionsleiste passen, landen im Aktionsüberlauf.
Im Screenshot hier sehen Sie eine Aktionsschaltfläche für die Suche und den Action Overflow auf der rechten Seite der Action Bar.
- Selbst wenn Ihre App für Versionen von Android älter als 3.0 entwickelt wurde (in denen Apps traditionell das Optionsmenü verwenden, um Benutzeroptionen/Aktionen anzuzeigen), gibt es bei der Ausführung mit Android 3.0 und höher keine Menütaste.
- Die Schaltfläche, die in der System-/Navigationsleiste angezeigt wird, stellt den Aktionsüberlauf für Legacy-Anwendungen dar, der Aktionen und Benutzeroptionen anzeigt, die “vom Bildschirm überlaufen” sind.
Dies mag wie eine Haarspalterei über die Terminologie erscheinen, aber der Name Action Overflow fördert eine andere Denkweise. Anstatt über ein Menü nachzudenken, das als Anlaufstelle für verschiedene Benutzeroptionen dient, sollten Sie mehr darüber nachdenken, welche Benutzeroptionen Sie als Aktionen auf dem Bildschirm anzeigen möchten. Diejenigen, die nicht auf dem Bildschirm sein müssen, können vom Bildschirm überlaufen. Benutzer können den Überlauf und andere Optionen anzeigen, indem sie auf eine Überlauftaste tippen, die neben den Aktionstasten auf dem Bildschirm erscheint.
Aktions-Überlauftaste für Legacy-Anwendungen
Wenn Sie bereits eine App zur Unterstützung von Android 2.3 und niedriger entwickelt haben, dann haben Sie vielleicht bemerkt, dass, wenn sie auf einem Gerät ohne Hardware-Menü-Taste läuft (z.B. einem Wabentablett oder Galaxy Nexus), das System die Action Overflow-Taste neben der Systemnavigation hinzufügt.
Dies ist ein Kompatibilitätsverhalten für ältere Anwendungen, die sicherstellen sollen, dass Anwendungen, die so aufgebaut sind, dass sie eine Menütaste erwarten, funktionsfähig bleiben. Diese Schaltfläche bietet jedoch kein ideales Benutzererlebnis. In Anwendungen, die ohnehin kein Optionsmenü verwenden, tut diese Aktions-Überlauftaste nichts und schafft Verwirrung bei den Benutzern. Daher sollten Sie Ihre Legacy-Anwendungen aktualisieren, um den Action Overflow aus der Navigationsleiste zu entfernen, wenn Sie mit Android 3.0+ arbeiten, und bei Bedarf mit der Action Bar beginnen. Sie können dies alles tun, während Sie rückwärtskompatibel zu den Geräten bleiben, die Ihre Anwendungen derzeit unterstützen.
Wenn Ihre App auf einem Gerät ohne dedizierte Menü-Schaltfläche läuft, entscheidet das System, ob der Navigationsleiste der Action Overflow hinzugefügt werden soll, basierend darauf, welche API-Ebenen Sie im Manifestelement unterstützen. Die Logik läuft darauf hinaus:
Wenn Sie entweder minSdkVersion oder targetSdkVersion auf 11 oder höher einstellen, wird das System die Legacy Overflow-Taste nicht hinzufügen.
Andernfalls fügt das System die Legacy Overflow-Taste hinzu, wenn es auf Android 3.0 oder höher ausgeführt wird.
Die einzige Ausnahme ist, dass, wenn Sie minSdkVersion auf 10 oder niedriger einstellen, targetSdkVersion auf 11, 12 oder 13 einstellen und Sie ActionBar nicht verwenden, das System die Legacy Overflow-Taste hinzufügt, wenn Sie Ihre App auf einem Mobilteil mit Android 4.0 oder höher ausführen.
Diese Ausnahme mag etwas verwirrend sein, basiert aber auf dem Glauben, dass, wenn Sie Ihre App so konzipiert haben, dass sie Pre-Honeycomb-Handsets und Honeycomb-Tablets unterstützt, sie wahrscheinlich erwartet, dass Mobilteilgeräte eine Menütaste enthalten (aber sie unterstützt Tablets, die keine haben).
Um also sicherzustellen, dass die Überlaufaktionsschaltfläche nie neben der Systemnavigation erscheint, sollten Sie die targetSdkVersion auf 14 einstellen (Sie können m lassen).