Как победить черный экран в Google Maps
При внедрении в свое приложение GoogleMaps API v2 столкнулся со странным поведением: если отобразить карту, затем свернуть приложение и после того как приложение опять активировать, то вместо карты мы наблюдаем черный экран. Причем этот глюк наблюдается не на всех платформах. К примеру,на Nexus 5 и Nexus 4 с android 4.4.2 я его не наблюдал, а на телефоне LG с андроидом 4.1 на борту проблема проявилась.
После активного поиска выяснилось, что проблема гуглу известна, это не результат моих кривых ручек, и исправление есть на свежих версиях андроида. Однако, не у всех же нексусы ) Нужно искать решение. По поведению можно предположить, что проблема кроется в том, что не приходит событие на обновление окна отображения карты. Посылать самостоятельно это событие не стоит, на новых же прошивках все нормально. После продолжительных поисков был найден оптимальный костыль: расположить поверх виджета карты любой прозрачный слой, и все становится нормально. Пример кода:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <com.google.android.gms.maps.MapView android:layout_width="match_parent" android:layout_height="match_parent" android:enabled="true" android:clickable="true" android:id="@+id/map" /> <View android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/transparent" /> </RelativeLayout> |