新しいAndroidGoogleMaps API(v2)を実装しようとしています。ただし、 SlidingMenuではうまくいかないようです。ご存知かもしれませんが、MapFragment
実装はに基づいていSurfaceView
ます。問題は、SurfaceView
それを移動するのが好きではないということです-つまり、移動可能なビューに配置することを意味します:
ViewPager
、ScrollView
、ListView
、- または前述の
SlidingMenu
。
動かすと、元々ピクセルがあった場所にブラックホールが残ります。こんな感じです。
SurfaceView
この問題は、または上に透明な背景を指定するか、その上に透明な背景を配置することで部分的に解決できますView
。自分だけでは結果が受け入れられないのか、それとも別の問題が発生してどのように見えるのかがわかりません。
それがどのように見えるかを見るには、このビデオを見てください。
(品質は申し訳ありませんが、とにかく問題は簡単にわかります)
開いているときに通常のリストビュー(オレンジ色の画面)を引き離すSlidingMenu
と、アニメーションがスムーズできれいになります。しかし、が表示されるとすぐMapFragment
に、マップ上に奇妙な更新/ちらつき/同期の問題が発生します。
HTCOneSおよびSamsungGalaxyACEでテスト済み。
それを解決するという私の超狂気のアイデア:オープニングアニメーションが開始するたびに、
地図のスクリーンショットを撮ることは不可能ですが、誰かがこれに触発されるかもしれません。MapFragment
(SurfaceViewで可能であるはずの)スクリーンショットを撮り、アニメーションの期間中それを重ねます。しかし、私は本当にそれを行う方法を知りません...
あるいは、他の方法で地図の再描画を無効にするかもしれませんが、わかりません。
アップデート:
これを見つけました。
これらの制限を取り除くために、SurfaceViewをTextureViewに変更できるようです。しかし、MapFragmentはSurfaceViewに基づいているため、それを実現できるかどうかはわかりません。
別の更新 この問題はデバイス4.1以降で解決されたようです。彼らはTextureViewを使用しました。ただし、下位バージョンでは、回避策を使用する必要があります。