googlemap标记的自定义信息窗口

时间:2018-05-16 13:47:10

标签: android google-maps-markers google-maps-android-api-2 infowindow

我想自定义标记点击时显示的信息窗口, 我为infowindow做了一个布局并设置了infowindowadaptor 它的工作正常我的布局(黑色圆角)在默认的infowindow布局中显示实际上信息窗口没有改变其内容的变化。

google doc

public abstract查看getInfoWindow(标记标记)

GoogleMap.InfoWindowAdapter 公共静态界面GoogleMap.InfoWindowAdapter 提供自定义呈现信息窗口的视图。

在标记的信息窗口中显示为内容的自定义视图,或者为null以使用默认内容呈现。 public abstract查看getInfoWindow(标记标记) 为标记提供自定义信息窗口。如果此方法返回视图,则它将用于整个信息窗口。如果在调用此方法后更改此视图,则这些更改不一定会反映在呈现的信息窗口中。如果此方法返回null,则将使用默认信息窗口框架,其内容由getInfoContents(Marker)提供。

   public View getview(){
    View v; // Creating an instance for View Object
    LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    v = inflater.inflate(R.layout.map_custom_infowindow, null);

    TextView pickordrop = v.findViewById(R.id.placetype);
    TextView placename = v.findViewById(R.id.placename);


    return v;
}


@Override
public View getInfoWindow(Marker marker) {

    return getview();
}

@Override
public View getInfoContents(Marker marker) {
    View view = ((Activity)context).getLayoutInflater()
            .inflate(R.layout.map_custom_infowindow, null);

    TextView pickordrop = view.findViewById(R.id.placetype);
    TextView placename = view.findViewById(R.id.placename);

    pickordrop.setText("Pickup");
    placename.setText(marker.getTitle());

    InfoWindowData infoWindowData = (InfoWindowData) marker.getTag();

    return view;
}

1 个答案:

答案 0 :(得分:0)

抱歉,我在正确阅读文档后得到了答案 它说 API将首先调用getInfoWindow(Marker),如果返回null,则它将调用getInfoContents(Marker)。如果这也返回null,则将使用默认信息窗口。

我的getInfoWindow刚刚返回一个空白视图,所以没有显示