我正在尝试在 Google map 上显示两种类型的信息窗口。当我单击标记时,会调用自定义信息窗口,但是当我单击 map 时,不会显示另一个自定义信息窗口。而且我得到了日志,我发现 getInfoContents 没有在 setOnMapClickListener 中调用。但 setOnMarkerListener 中的 getInfoContents 被调用。 ...为什么?
mMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() {
@Override
public void onMapClick(LatLng latLng) {
mMap.setInfoWindowAdapter(new GoogleMap.InfoWindowAdapter() {
@Override
public View getInfoWindow(Marker marker) {
Log.v("a", "getInfoWindow");
return null;
}
@Override
public View getInfoContents(Marker marker) {
Log.v("a", "getInfoContents");
View view = getActivity().getLayoutInflater().inflate(R.layout.marker_default, null);
TextView title = (TextView) view.findViewById(R.id.default_infowindow);
title.setText(mCompany);
return view;
}
});
}
});
mMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker) {
mMap.setInfoWindowAdapter(new GoogleMap.InfoWindowAdapter() {
@Override
public View getInfoWindow(Marker marker) {
return null;
}
@Override
public View getInfoContents(Marker marker) {
View view = getActivity().getLayoutInflater().inflate(R.layout.marker_window, null);
ImageView badge = (ImageView) view.findViewById(R.id.badge);
badge.setImageResource(R.drawable.ic_launcher);
TextView title = (TextView) view.findViewById(R.id.title);
TextView snippet = (TextView) view.findViewById(R.id.snippet);
title.setText(mCompany);
snippet.setText(mAddress);
return view;
}
});
return false;
}
});
最佳答案
我遇到了同样的问题,我忘记让 Activity 知道回调。 尝试添加这个:
mMap.setInfoWindowAdapter(this);
关于android - 未调用 getInfoContents(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27538149/