2013-04-19 17 views
5

La larghezza che ho impostato nel mio layout di InfoWindow personalizzato sembra essere ignorata (sempre match_parent).La larghezza del mio layout di InfoWindow personalizzato viene ignorata nell'API di Google Maps Android v2

Mi manca qualcosa?

mMap.setInfoWindowAdapter(new InfoWindowAdapter() { 

    @Override 
    public View getInfoWindow(Marker arg0) { 
     return null; 
    } 

    @Override 
    public View getInfoContents(Marker arg0) { 

     View v = getActivity().getLayoutInflater().inflate(R.layout.info_window_layout, null); 

     // set my custom data 

     return v; 

    } 
}); 

info_window_layout.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="100dp" 
    android:layout_height="50dp" 
    android:padding="5dp" > 

    <!-- some custom stuff --> 

</RelativeLayout> 
+0

Ovviamente questo è solo un problema con RelativeLayouts. I LinearLayout funzionano bene. Così ho finito con la riscrittura del mio layout in un LinearLayout. Fortunatamente era abbastanza semplice quindi non era un grosso problema. – Ridcully

risposta

0

suppongo che sarebbe effettivamente wrap_content.

Il modo in cui la finestra delle informazioni funziona consiste nel disegnare la vista in una bitmap e non inserirla in nessun altro ViewGroup. layout_xxx sono usati da Vista padre.

Hardcoding questi valori su alcuni o su tutti i figli di RelativeLayout probabilmente risolveranno il problema.

0

cercare di utilizzare questo in getInfoWindow, getInfoContents restituiscono nulla:

<LinearLayout 
      xmlns:android="http://schemas.android.com/apk/res/android" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:orientation="vertical" 
      android:background="@drawable/transparent"> 

     <LinearLayout 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:gravity="center_horizontal" 
       android:orientation="vertical"> 

      <!-- some custom stuff --> 

     </LinearLayout> 
    </LinearLayout> 
0
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:layout_gravity="center_horizontal" 
android:background="#8BC34A" 
android:orientation="vertical" 
android:paddingBottom="@dimen/small_padding" 
android:paddingLeft="@dimen/very_samll_padding" 
android:paddingRight="@dimen/very_samll_padding" 
android:paddingTop="@dimen/small_padding"> 


<LinearLayout 
    android:layout_width="320dp" 
    android:layout_height="wrap_content" 
    android:orientation="vertical"> 

    <TextView 
     android:id="@+id/tv_address" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textColor="@color/white" /> 

    <LinearLayout 
     android:id="@+id/ll_latlong" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/tv_address" 
     android:layout_marginTop="@dimen/very_samll_padding" 
     android:orientation="horizontal"> 

     <TextView 
      android:id="@+id/tv_lat" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center_vertical" 
      android:textColor="@color/white" /> 

     <View 
      android:layout_width="1dp" 
      android:layout_height="12dp" 
      android:layout_gravity="center_vertical" 
      android:layout_marginLeft="@dimen/small_padding" 
      android:layout_marginRight="@dimen/small_padding" 
      android:background="@color/white" /> 

     <TextView 
      android:id="@+id/tv_long" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center_vertical" 
      android:textColor="@color/white" /> 

    </LinearLayout> 
</LinearLayout> 

Proprio chnage il dp larghezza secondo la vostra requiremnt

Problemi correlati