Множество карт v2 в TabActivity

В настоящее время я пытаюсь иметь 2 карты v2 в разных вкладках TabActivity, используя объекты MapView. Проблема возникает в следующем сценарии:

  • tab1 с отображением карты
  • перейдите на вкладку tab2, чтобы отобразить другую карту.
  • в этой второй вкладке выглядит, как изображение карты с первой вкладки перекрывает новую карту. См. Следующий рисунок:

TabActivity with 2 maps

Справа вы видите, как первая карта все еще отображается поверх нее. События касания идут к новой карте, но это действительно не помогает. Я потратил много времени, пытаясь конвертировать наше приложение, чтобы использовать фрагменты и сталкиваться с другими типами проблем. Один из них - http://code.google.com/p/android/issues/detail?id=40035, чтобы не было хорошего варианта.

До сих пор мне не удалось найти обходное решение. Чтобы легко попробовать различные изменения, я написал простое приложение и сделал его доступным здесь: https://github.com/cristizmf/TestMapsV2. Ему нужно только правильное место для проекта библиотеки карт и хороший ключ карты в манифесте.

Будем очень благодарны за любые идеи.

Далее редактирование: я зарегистрировал проблему для этого: https://code.google.com/p/gmaps-api-issues/issues/detail?id=5027&thanks=5027&ts=1362071369

Ответ 1

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

Единственный способ, которым мы работали, состоял в том, чтобы фактически удалить mapview при выходе из вкладки, а затем построить новую и добавить ее обратно при возвращении на вкладку. Это гарантирует, что никогда не будет построено сразу два отображения.

Отвратительно, но это сработало.

Ответ 2

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

Изначально у меня было настроено приложение "Tabs the Fragment way", как показано здесь, чтобы избежать устаревшей TabActivity и использовать этот хак, чтобы я мог включить Maps v1 in с фрагментами. Он в основном просто маскирует действие как фрагмент.

Но затем для перехода к следующему треку переместился на TabActivity, что было лучше всего подходит для всего приложения. Но теперь, очевидно, эта проблема с 2-х картами v2-фрагмента стала проблемой.

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

Не знаю, есть ли у вас проблема с этим/это, очевидно, не самое правильное решение, но просто подумал, что я бы разделил свои два цента, если вы все еще нуждаетесь в этом.

Приветствия.