Ich versuche, Google Maps Android API v2 in meine Android-Anwendung zu integrieren. Ich platziere die Google Map in der Mitte meines Layouts. Es funktioniert hervorragend, wenn das Layout auf den Bildschirm passt. Wenn das Layout jedoch zu groß ist und der Benutzer nach unten scrollt, um den Rest des Inhalts anzuzeigen, wird der Rest des Layouts von Google Map ausgeblendet. Siehe die folgende Screenshot:Google Maps Android API V2 Blackout Teil des Layouts
(Anmerkung:. Alle Karten Gesten sind deaktiviert, damit der Benutzer blättern)
Mein Layout XML:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:scrollbars="vertical"
android:fillViewport="true" >
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="20sp" >
<TextView
android:id="@+id/race_num"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="14sp"
android:textSize="@dimen/DetailsTop"
android:layout_alignParentLeft="true"
android:layout_toLeftOf="@+id/race_in_chase" />
<TextView
android:id="@id/race_in_chase"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/in_the_chase"
android:textSize="@dimen/DetailsTop"
android:background="@drawable/inthechase"
android:paddingLeft="20sp"
android:paddingRight="20sp"
android:visibility="gone"
android:layout_alignParentRight="true" />
<TextView
android:id="@+id/race_name"
style="@style/RaceDetailsName"
android:layout_below="@id/race_num" />
<TextView
android:id="@+id/race_track"
style="@style/RaceDetailsText"
android:paddingBottom="20sp"
android:layout_below="@id/race_name" />
<TextView
android:id="@+id/race_time"
style="@style/RaceDetailsText"
android:layout_below="@id/race_track" />
<TextView
android:id="@+id/race_tv"
style="@style/RaceDetailsText"
android:layout_below="@id/race_time" />
<fragment
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="380dp"
android:layout_marginTop="20sp"
android:layout_marginBottom="20sp"
class="com.google.android.gms.maps.SupportMapFragment"
android:layout_below="@id/race_tv" />
<TextView
android:id="@+id/race_track_size"
style="@style/RaceDetailsText"
android:layout_below="@id/map" />
</RelativeLayout>
</ScrollView>
Meine Karte Setup in meine Aktivität:
private void setUpMapIfNeeded() {
if (mMap == null) {
mMap = ((SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map)).getMap();
if (mMap != null) {
setUpMap();
}
}
}
private static final LatLng CHICAGOLAND = new LatLng(41.474856, -88.056928);
private void setUpMap() {
mMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE);
mMap.getUiSettings().setZoomControlsEnabled(false);
mMap.getUiSettings().setAllGesturesEnabled(false);
CameraPosition cameraPosition = new CameraPosition.Builder()
.target(CHICAGOLAND)
.zoom(14.5f)
.bearing(53)
.build();
mMap.moveCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
}
Meine Ahnung ist das Kartenfragment tut n ot wie die ScrollView, da das Layout in Ordnung ist, wenn das gesamte Layout auf den Bildschirm passt und das Scrollen nicht erforderlich ist. Die Karte selbst scheint die richtige Größe zu haben. Der Blackout ist die genaue Größe der verbleibenden Elemente in der Ansicht. Hat jemand irgendwelche Ideen, wie ich den Blackout unter der Karte loswerden kann, damit ich den TextView darunter sehen kann? Alles, was ich bis jetzt versucht habe, hat nicht funktioniert.
Wirklich kein Flimmern? Ich habe diese Lösung mit SlidngMenu versucht, aber das hat nichts geändert. Sehen Sie das für Details: http://Stackoverflow.com/questions/14419521/moving-mapfragment-surfaceview-causes-black-background-flickering/14571989#comment20335526_14571989 –
Ich habe editTexts unter Karte und ich benutzte dieses, der redigierte Text verliert als nächstes Fokus, wie könnte ich das tun, oder gibt es einen anderen Weg? – JRowan