我想使用InfoWindow的默认设计创建一个显示图像,标题和副标题的信息窗口,从而在我的代码中实现InfoWindowAdapter接口。因为我想保留窗口的默认设计,所以我使用getInfoContents方法并在那里设置我的值。但是,单击标记时唯一显示的是图像,而不是文本。我试着评论出图像,看看文字是否刚被图像掩埋,但没有出现。我的标题和副标题字段未显示在标注中。
但是,当我在getInfoWindow方法中放入相同的代码时,所有三个字段都按预期显示。
我宁愿不使用getInfoWindow方法,因为默认的callout样式对我来说就足够了。
这是我调用自定义信息适配器的地方:
private class CustomWindowAdapter implements GoogleMap.InfoWindowAdapter {
private View infoView;
CustomWindowAdapter() {
infoView = getLayoutInflater().inflate(R.layout.custom_map_infoview, null);
}
@Override
public View getInfoContents(Marker marker)
{
TextView title = (TextView)infoView.findViewById(R.id.popup_title);
TextView subtitle = (TextView)infoView.findViewById(R.id.popup_subtitle);
ImageView image = (ImageView)infoView.findViewById(R.id.popup_image);
title.setText(marker.getTitle());
subtitle.setText(marker.getSnippet());
image.setImageResource(R.drawable.image);
return infoView;
}
@Override
public View getInfoWindow(Marker marker)
{
return null;
}
}
这是我的layout.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/popup_image"
android:layout_height="match_parent"
android:layout_width="match_parent" />
<TextView
android:id="@+id/popup_title"
android:layout_height="match_parent"
android:layout_width="match_parent" />
<TextView
android:id="@+id/popup_subtitle"
android:layout_height="match_parent"
android:layout_width="match_parent" />
</LinearLayout>
为什么它可能不会出现的任何想法?
答案 0 :(得分:0)
信息窗口的一个问题是,由于View
由另一个进程呈现,您无法轻易使用层次结构视图等工具来查看布局是否按预期工作。使用IDE的图形布局编辑器可以帮助提供可能有助于诊断问题的预览。
无论如何,在这种情况下,您要求垂直LinearLayout
的所有三个孩子的身高都为match_parent
,并且没有重量。结果,“胜利中的第一个”和两个TextView
小部件最终会以0为高。