InfoWindowsAdapter中未显示嵌套的LinearLayout

时间:2013-09-04 16:01:39

标签: android android-layout android-linearlayout google-maps-android-api-2

我在Android应用上使用谷歌地图。在地图上我有一些标记;当你点击它们时我想显示一个显示这个视图的自定义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");
        }
    }
}

问题: 当您点击标记时,您会看到自定义视图,但只显示第一个显示textNome的LinearLayout。实质上,每个LinearLayout都是一行,我总能看到第一行。

使用Google地图以外的经典视图,此视图效果很好。

1 个答案:

答案 0 :(得分:0)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_vertical|left"
    android:padding="5dp" >

    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="0.30"
        android:text="@string/wc_nome"
        android:textColor="#040404"
        android:textSize="17sp"
        android:textStyle="bold"
        android:typeface="sans" />

    <TextView
        android:id="@+id/textNome"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="0.70"
        android:text="--"
        android:textColor="#040404"
        android:textSize="17sp"
        android:typeface="sans" />
</LinearLayout>

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_vertical|left"
    android:padding="5dp" >

    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="0.30"
        android:text="@string/wc_indirizzo"
        android:textColor="#040404"
        android:textSize="17sp"
        android:textStyle="bold"
        android:typeface="sans" />

    <TextView
        android:id="@+id/textIndirizzo"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="0.70"
        android:text="--"
        android:textColor="#040404"
        android:textSize="17sp"
        android:typeface="sans" />
</LinearLayout>

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_vertical|left"
    android:padding="5dp" >

    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="0.30"
        android:text="@string/wc_orario"
        android:textColor="#343434"
        android:textSize="17sp"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/textOrario"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="0.70"
        android:text="--"
        android:textColor="#343434"
        android:textSize="17dip" />
</LinearLayout>

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_vertical|left"
    android:padding="5dp" >

    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="0.30"
        android:text="@string/wc_servizi"
        android:textColor="#343434"
        android:textSize="17sp"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/textServizi"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_weight="0.70"
        android:text="--"
        android:textColor="#343434"
        android:textSize="17dip" />
</LinearLayout>