我有这种方法可以创建自定义标记,但是如果infowindows超过2并且如果在地图的另一部分中选择它们它们不会消失,我希望它们可以被激活吗?
private void mMarker(String direction, Double latitude, Double longitude) {
MarkerOptions markerOpt = new MarkerOptions();
markerOpt.position(new LatLng(latitude, longitude))
.title(direction)
.snippet("").icon(BitmapDescriptorFactory.fromResource(R.drawable.pinc));
CustomInfoWindows adapter = new CustomInfoWindows(MainActivity.this);
gMap.setInfoWindowAdapter(adapter);
gMap.addMarker(markerOpt).showInfoWindow();
gMap.setOnInfoWindowClickListener(new GoogleMap.OnInfoWindowClickListener() {
@Override
public void onInfoWindowClick(Marker marker) {
launchPlaceSearchActivityOrigin();
}
});
}
自定义适配器*
public class CustomInfoWindows implements GoogleMap.InfoWindowAdapter {
private Activity context;
public CustomInfoWindows(Activity context) {
this.context = context;
}
@Override
public View getInfoWindow(Marker marker) {
View view = context.getLayoutInflater().inflate(R.layout.custominfowindows, null);
TextView tvTitle = (TextView) view.findViewById(R.id.tv_title);
TextView tvSubTitle = (TextView) view.findViewById(R.id.tv_subtitle);
tvTitle.setText(marker.getTitle());
tvSubTitle.setText(marker.getSnippet());
return view;
}
@Override
public View getInfoContents(Marker marker) {
return null;
}
}
答案 0 :(得分:0)
由于任何时候只显示一个信息窗口,因此该提供程序可以选择重用视图,也可以选择在每个方法调用上创建新视图。
尝试使用自定义标记并一次显示多个