Я лично столкнулся с этим и обнаружил, что это в основном проблема с макетом на iOS. Значения атрибутов height
и width
, передаваемые в элемент XML MapView, в iOS обрабатываются несколько иначе. Решением нашей проблемы, как описано в самом вопросе, является resizing
карта во время выполнения (поскольку поворот экрана заставляет его выполнять процедуру изменения размера). Применение этой абсурдной логики в начале рендеринга карты решает проблему.
Вот как я это сделал:
Укажите значение width
MapView в XML:
<maps:mapView width="100%" mapReady="onMapReady" />
и установите height
карты внутри метода onMapReady
с задержкой 100 миллисекунд.
/* if you want to set height in DIP */
setTimeout(() => this.mapView.height = 500, 100);
или если вы хотите установить высоту в процентах
/* [0.85 means 85% here] */
setTimeout(() => this.mapView.height = {
unit: '%',
value: 0.85
}, 100);
Задержка в 100 миллисекунд заставляет его пройти эффект resize
. Проверено на iOS 12.1
person
saibbyweb
schedule
30.01.2019