MapFragment in ScrollView
android, android-mapview, google-maps, google-play-services
Solution
Applying a transparent image over the mapview fragment seems to resolve the issue. It's not the prettiest, but it seems to work. Here's an XML snippet that shows this:
<RelativeLayout
android:id="@+id/relativeLayout1"
android:layout_width="match_parent"
android:layout_height="300dp" >
<fragment
android:id="@+id/map"
android:name="com.google.android.gms.maps.MapFragment"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
<ImageView
android:id="@+id/imageView123"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/temp_transparent" />
</RelativeLayout>
Problem
I have one of the new `MapFragment`s in a `ScrollView`. Actually it's a `SupportMapFragment`, but anyway. It works, but there are two problems: When scrolled, it leaves a black mask behind. The black covers exactly the area where the map was, except for a hole where the +/- zoom buttons were. See screenshot below. This is on Android 4.0. The view doesn't use `requestDisallowInterceptTouchEvent()` when the user interacts with the map to prevent the `ScrollView` intercepting touches, so if you try to pan vertically in the map, it just scrolls the containing `ScrollView`. I could theoretically derive a view class `MapView` and add that functionality, but how can I get `MapFragment` to use my customised `MapView` instead of the standard one?