Android Google Map API V2 пустой экран с вложенными фрагментами

Я работаю над приложением для Android с расширенной интеграцией Google Maps API V2. Я использую SupportFragment, и все работало нормально, пока я не начал помещать карту в следующий дочерний фрагмент - существует глубокая иерархия фрагментов:

SplitViewFragment-> RightChildFragment-> ViewPagerFragment-> SupportMapFragment

Я хочу добиться специальной компоновки для планшетов, чтобы невозможно было удалить один уровень фрагмента.

Пока все хорошо - все работает очень хорошо на устройствах Android 4.3+, но на более низких уровнях API фрагмент карты всегда остается пустым / прозрачным - логотип Google и элементы управления масштабированием видны. Нет ошибки logcat. Google Map работает на том же устройстве, когда я удаляю один вложенный фрагмент; так что это не проблема аутентификации, как часто описывается.

Я также попытался инициализировать MapFragment с помощью zOrderOnTop:

GoogleMapOptions options = new GoogleMapOptions(); options.zOrderOnTop(true); SupportMapFragment mapFragment = SupportMapFragment.newInstance(options);

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

Я так с нетерпением жду ваших ответов. Бесконечно благодарен!

2 ответа

Решение

Невероятно - у меня есть представление анимации в иерархии с аппаратным ускорением - я убрал ускорение для уровней API < 18, так как есть проблема с clipPath:

setLayerType(View.LAYER_TYPE_SOFTWARE, null);

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

Большое спасибо за вашу помощь.

Я когда-то сталкивался с этой проблемой. Надеюсь, эта ссылка поможет вам:)

благодаря jcampbell05

Если вы использовали SupportMapFragment на старых устройствах Android, то вы знаете, насколько это может раздражать, когда он покидает черный ящик, когда вы прокручиваете ListView, ScrollView или ViewPager.

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

Другие вопросы по тегам