Как заставить MapView высоту учитывать строку состояния Android? - PullRequest
4 голосов
/ 13 августа 2010

У меня есть кликабельные значки на карте, показывающие всплывающее окно чуть выше значка при нажатии. Однако, если значок находится в самой верхней части карты, всплывающее окно будет скрыто под строкой состояния Android. PopupWindow автоматически подгонится к правому и левому краям экрана, а также к верхнему краю, но не учитывает панель строки состояния.

Либо должен быть способ размещения высоты MapView, либо атрибут PopupWindow, учитывающий строку состояния. Конечно, всегда можно добавить верхнее поле фиксированного размера, но верхняя панель имеет разную высоту на разных устройствах Android.

Может кто-нибудь помочь с этим? Спасибо!

1 Ответ

1 голос
/ 26 октября 2010

Я до сих пор не нашел способа настроить MapView в соответствии со строкой состояния Android, что является неудачным.

Однако в случае PopupWindow достаточно знать высоту строки состояния Android, поскольку кодер размещает ее на экране.Затем кодер может выработать свою собственную стратегию для решения этой проблемы.

Согласно другому посту, это то, как это можно сделать:

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

Однако постарайтесь не делать этот расчетпока все компоненты окна не будут инициализированы, поскольку в противном случае оно будет равно нулю.Это легко заметить и исправить.

BR, Ваня

...