13

現在、MapView オブジェクトを使用して、TabActivity の異なるタブに 2 つのマップ v2 を配置しようとしています。この問題は、次のシナリオで発生します。

  • 地図付きのtab1が表示されます
  • 別の地図を表示するには、tab2 に移動します
  • この 2 番目のタブでは、最初のタブのマップ イメージが新しいマップに重なっているように見えます。次の図を参照してください。

2 つのマップを持つ TabActivity

右側では、最初のマップがまだその上に表示されていることがわかります。タッチ イベントは新しいマップに送られますが、それはあまり役に立ちません。フラグメントを使用するようにアプリを変換し、他の種類の問題が発生するように多くの時間を費やしました。そのうちの 1 つは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

4

2 に答える 2

0

私は数日前に同じ問題に遭遇し、何をすべきかについて髪を引っ張っていました。

元々 、非推奨のTabActivityを回避するために、ここに示すようにアプリを「Tabs the Fragment way」でセットアップし、このハックを使用してMapsv1をFragmentsに組み込むことができました。基本的に、アクティビティをフラグメントとしてマスクするだけです。

しかし、その後、単純化のためにTabActivityに切り替えました。これは、アプリ全体により適していました。しかし今では明らかに、この2xMapsv2フラグメントの問題が問題になっています。

そこで、「フラグメントのあるタブ」に戻り、タブごとに上記の「ハック設定」を設定しました。これにより、タブごとにアクティビティを設定し、タブごとに複数のMapsv2を表示できます。私はそれについてあまり深く掘り下げていませんが、それをテストするためにいくつかのコードを一緒に投げただけで、それは仕事のATMをやっているようです。

あなたがまだこれに問題を抱えているかどうかわからない/これは明らかに最も正しい解決策ではありませんが、あなたがまだそれを必要とする場合に備えて私が私の2セントを共有すると思っただけです。

乾杯。

于 2013-03-13T22:34:09.473 に答える
0

まったく同じ問題が発生しています。これは、新しいマップが OpenGL を使用していることが原因であると思われます。1 つが非表示になっている場合でも、Android はビュー階層に 2 つの OpenGL ウィジェットを同時に持つことを処理できない可能性があります。

これを回避する唯一の方法は、タブを離れるときにマップビューを実際に削除し、新しいタブを作成して、タブに戻るときに再度追加することでした。これにより、一度に 2 つのマップが作成されることがなくなります。

厄介ですが、うまくいきました。

于 2013-02-14T06:17:53.220 に答える