2012-12-21 6 views
7

Gibt es eine Möglichkeit, programmgesteuert zu erkennen, ob sich der Infobereich oben auf dem Bildschirm oder in der unteren rechten Ecke befindet (wie bei den meisten Tablets)?Wie kann ich die Position des Benachrichtigungsbereichs erkennen?

+1

Das ist eine gute Frage, aber warum? Welche bösen Absichten haben Sie mit diesem Wissen im Sinn? : -p – AedonEtLIRA

+4

Hinweis: um die Dinge ein wenig zu komplizieren Nexus 7 ist ein Tablet und hat seine Benachrichtigungen entlang der Oberseite, anstatt unten rechts. – FoamyGuy

+1

@FoamyGuy Go Konsistenz! – AedonEtLIRA

Antwort

4

Benachrichtigungen werden immer in einer 25dp-tall Statusleiste am oberen Rande des Displays angezeigt, außer für sw600 Vorrichtungen (das heißt, die kleinste Breite in jeder Ausrichtung ist 600dp, siehe this blog post für weitere Informationen) auf API Ebenen 11 (Honeycomb) bis 16 (Jelly Bean Pre-MR1). Auf diesen Geräten befindet sich am unteren Bildschirmrand eine 48 "hohe" kombinierte Systemleiste ".

Der einfachste Weg, um dies zu überprüfen, ist über qualifizierte Ressourcen; Legen Sie also Ihr Top-Statusleisten-Layout in layout/foo.xml an, aber geben Sie in layout-sw600dp/foo.xml eine Version mit unterer Systemleiste ein. Da diese großen Geräte jetzt die oberste Statusleiste von Android 4.2 (API 17) verwenden, müssen Sie in layout-sw600dp-v17/foo.xml zurück zur obersten Statusleiste wechseln.

Wenn Sie nur einen Booleschen Wert wollen, dass Sie, ob die Statusleiste befindet sich am oberen sagen wird, mit values, layout im obigen Beispiel ersetzen und legen Sie eine <bool> in , die außer im values-sw600dp Fall wahr ist.

Verwandte Themen