Как программно получить видимую высоту экрана в Android? - PullRequest
1 голос
/ 25 октября 2011

При разработке на Titanium для Android мне нужно установить размеры отображения карты, чтобы поставить на окно, и, в частности, установить высоту отображения карты.Поэтому мне нужно знать размер видимого экрана.

Вот макет: 1. Группа вкладок (любой размер по умолчанию для этого устройства Android) 2. Просмотр карты (занимают оставшееся пространство экрана) 3. Центрзначок (должен быть размещен посередине карты, с фиксированным размером) 4. Метка (фиксированный размер) 5. Кнопка (фиксированный размер)

Один из способов сделать это - программно получить высоту группы вкладок,а затем вычтите из platformHeight все остальные элементы (группу вкладок, высоту надписи и кнопку).Но я не могу найти способ получить высоту группы вкладок - кто-нибудь знает?

Обратите внимание, что я не могу просто использовать свойство bottom при просмотре карты (т. Е. Установить его на label.height + button.height), так какМне все еще нужно знать, какова высота карты, чтобы я мог поместить значок в центре в центре.

Любые предложения будут с благодарностью.

1 Ответ

1 голос
/ 02 ноября 2011

Обычно после рендеринга элемента вы должны видеть допустимые значения в свойстве размера. Это будет объект с шириной и высотой.

uiobject.size = { width: x, height: x }

Если вы запрашиваете размер объектов до их визуализации, он обычно возвращает нули. Под визуализированным я не обязательно подразумеваю видимый на экране, но помещенный в родительский вид и составленный. Объект может быть скрыт / невидим, но как только он будет размечен, эти свойства должны стать действительными.

Это должно работать для группы вкладок, внутреннего вида карты и т. Д. Все, что вам нужно использовать для справки.

Кроме того, вы пытались использовать свойство center для этого? Это имеет те же предостережения, что и выше (действительно только после составления в родительском представлении), но вы должны быть в состоянии сделать что-то вроде этого:

parent.add(mapView);
parent.add(centerIcon);
centerIcon.center = mapView.center;
...