4 Stimmen

Wie kann man die Höhe von MapView so einstellen, dass die Android-Statusleiste berücksichtigt wird?

Ich habe anklickbare Icons auf einer Karte, die ein PopupWindow direkt über dem Icon anzeigen, wenn sie angeklickt werden. Wenn sich das Symbol jedoch im obersten Teil der Karte befindet, wird das PopupWindow unter der Android-Statusleiste versteckt. Das PopupWindow passt sich automatisch an den rechten und linken Rand des Bildschirms und auch an den oberen Rand an, berücksichtigt aber nicht das Statusleistenfeld.

Entweder sollte es eine Möglichkeit geben, die Höhe des MapViews zu berücksichtigen, oder ein Attribut für das PopupWindow, das die Statusleiste berücksichtigt. Natürlich ist es immer möglich, eine feste Größe des oberen Randes hinzuzufügen, aber das obere Panel haben unterschiedliche Höhen auf verschiedenen Android-Einheiten.

Kann mir jemand dabei helfen? Danke!

1voto

Vanja Punkte 4085

Ich habe noch keine Möglichkeit gefunden, die Höhe der MapView an die Android-Statusleiste anzupassen, was sehr schade ist.

Im Falle des PopupWindow ist es jedoch ausreichend, die Höhe der Android-Statusleiste zu kennen, da diese vom Programmierer auf dem Bildschirm platziert wird. Der Programmierer kann dann seine eigene Strategie für dieses Problem entwickeln.

Laut dem anderen Beitrag kann das so gemacht werden:

Rect rectgle = new Rect();
Window window = getWindow();
window.getDecorView().getWindowVisibleDisplayFrame(rectgle);
statusBarHeight = rectgle.top;

Achten Sie jedoch darauf, diese Berechnung erst dann vorzunehmen, wenn alle Fensterkomponenten initialisiert wurden, da sie sonst Null ist. Das lässt sich leicht feststellen und beheben.

BR, Vanja

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X