2013-02-12 7 views
5

Ich habe eine Kartenansicht für Android Karten api v2 in einer Aktivität, die dieses gleitende Menü verwendet https://github.com/iPaulPro/SlidingMenu. Das gleitende Menü funktioniert hervorragend außer auf der Kartenseite. Es gibt eine schwarze Ansicht, die das gleitende Menü mit der genauen Größe der Karte abdeckt. Dies ist ein Beispiel, bei dem die Kartenhöhe auf 100 dpi eingestellt ist, um darzustellen, was ich meine.Android MapView mit Sliding Menu Obskuren Menü

View Issue

Wenn ich diese Ansicht berühren wird es weggehen. Wie würde ich es loswerden oder transparent machen? Ich habe den requestTransparentRegion() Trick ausprobiert. Kein Würfel dort.

+1

Was ist das iOS Suchleiste ??? Das sieht einfach falsch aus ... –

+0

Folgen Sie einfach den Comps. – smokingoyster

+0

Schauen Sie sich diese an: http://www.grokkingandroid.com/android-tutorial-adding-suggestions-to-search/ –

Antwort

13

Dieser Stapelüberlaufpfosten ViewPager with Google Maps API v2: mysterious black view gefunden und diese Klasse anstelle des normalen Kartenfragments verwendet.

package com.myapp.gms.maps; 

import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.view.ViewGroup.LayoutParams; 
import android.widget.FrameLayout; 
import com.google.android.gms.maps.SupportMapFragment; 

/** 
* @author btate 
*/ 
public class TransparentSupportMapFragment extends SupportMapFragment { 

    public TransparentSupportMapFragment() {} 

    @Override 
    public View onCreateView(LayoutInflater inflater, 
           ViewGroup view, 
           Bundle savedInstance) { 

     View layout = super.onCreateView(inflater, view, savedInstance); 
     FrameLayout frameLayout = new FrameLayout(getActivity()); 
     frameLayout.setBackgroundColor(
      getResources().getColor(android.R.color.transparent)); 
     ((ViewGroup) layout).addView(frameLayout, 
      new ViewGroup.LayoutParams(
       LayoutParams.MATCH_PARENT, 
       LayoutParams.MATCH_PARENT 
      ) 
     ); 
     return layout; 
    } 

} 
+0

dude, du hast meinen tag gerettet –

+0

große antwort danke – Ravi

0

Es gibt eine weitere Lösung für dieses Problem. Ich zeige MapFragment in einem anderen Fragment. Das MapFragment wird dynamisch zu einem FrameLayout hinzugefügt.

Die Lösung besteht darin, frameLayout.setVisibility(View.Visible) und frameLayout.setVisibility(View.Gone) zum Öffnen und Schließen von Ereignissen des gleitenden Menüs zu verwenden. Es muss keine zusätzliche Ansicht hinzugefügt werden. Und der schwarze Bereich ist komplett weg.

getSlidingMenu().setOnOpenListener(
    new OnOpenListener() { 
     @Override 
     public void onOpen() { 
      frameLayout.setVisibility(View.GONE); 
     } 
    } 
); 

getSlidingMenu().setOnClosedListener(
    new OnClosedListener() { 

     @Override 
     public void onClosed() { 
      frameLayout.setVisibility(View.VISIBLE); 
     } 
    } 
); 
0

TransparentSupportMapFragment löste das Problem für Android 2.3.7 Thank you!