Я использую Google Maps в приложении для Android. На карте у меня есть маркер; при нажатии на них я хочу отобразить пользовательский InfoWindowsAdapter, которые показывают эту точку зрения:Вложенные LinearLayout не показаны внутри InfoWindowsAdapter
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:weightSum="1">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center_vertical|left"
android:weightSum="1"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:textColor="#040404"
android:textSize="17dip"
android:textStyle="bold"
android:typeface="sans"
android:layout_weight="0.30"
android:text="@string/wc_nome"
android:layout_marginTop="10dp" />
<TextView
android:id="@+id/textNome"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:textColor="#040404"
android:textSize="17sp"
android:typeface="sans"
android:layout_marginTop="10dp"
android:layout_weight="0.70"
android:text="--" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center_vertical|left"
android:weightSum="1"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:textColor="#040404"
android:textSize="17dip"
android:textStyle="bold"
android:typeface="sans"
android:layout_weight="0.30"
android:text="@string/wc_indirizzo"
android:layout_marginTop="10dp" />
<TextView
android:id="@+id/textIndirizzo"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:textColor="#040404"
android:textSize="17sp"
android:typeface="sans"
android:layout_marginTop="10dp"
android:layout_weight="0.70"
android:text="--" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="left|center_vertical"
android:weightSum="1"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:textColor="#343434"
android:textSize="17dip"
android:layout_weight="0.30"
android:text="@string/wc_orario"
android:textStyle="bold"
android:layout_marginTop="10dp" />
<TextView
android:id="@+id/textOrario"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:textColor="#343434"
android:textSize="17dip"
android:layout_weight="0.70"
android:layout_marginTop="10dp"
android:text="--" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="left|center_vertical"
android:weightSum="1"
android:layout_marginRight="5dp"
android:layout_marginLeft="5dp">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:textColor="#343434"
android:textSize="17dip"
android:layout_weight="0.30"
android:text="@string/wc_servizi"
android:textStyle="bold"
android:layout_marginTop="10dp" />
<TextView
android:id="@+id/textServizi"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:textColor="#343434"
android:textSize="17dip"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_weight="0.70"
android:layout_marginTop="10dp"
android:text="--" />
</LinearLayout>
</LinearLayout>
И это часть кода деятельности:
public class InfoAdapter implements GoogleMap.InfoWindowAdapter {
View contenuto;
InfoAdapter() {
contenuto = getLayoutInflater().inflate(R.layout.details, null);
}
@Override
public View getInfoWindow(Marker marker) {
return null;
}
@Override
public View getInfoContents(Marker marker) {
render(marker, contenuto);
return contenuto;
}
private void render(Marker marker, View view) {
if (view != null) {
TextView textNome = (TextView) contenuto.findViewById(R.id.textNome);
TextView textIndirizzo = (TextView) contenuto.findViewById(R.id.textIndirizzo);
TextView textOrario = (TextView) contenuto.findViewById(R.id.textOrario);
textIndirizzo.setText("Indirizzo");
textNome.setText("Nome");
textOrario.setText("07:00 - 19:00");
}
}
}
Проблема:, когда вам нажмите на маркер, который вы видите в пользовательском представлении, но показываете только первый LinearLayout, который показывает textNome. По существу overy LinearLayout - это строка, и я вижу всегда только первое.
Используя классический вид вне Google Maps, этот вид прекрасно работает.