我将基于自定义布局的InfoWindowAdapter添加到基于Android Google Maps API v2的地图片段中。我在从getInfoWindow()返回的视图中放置了一个按钮,尽管它显示得非常好,但是当我单击该按钮时,窗口本身会注册一次单击(照常以淡黄色闪烁),而按钮却没有。
如何在信息窗口中使按钮“可点击”?而且,通过扩展,信息窗口内是否有任何视图?
相反,使用OnMarkerClickListener监听标记单击事件,并直接显示您自己的完整视图。但是,将其锚定到标记的位置可能需要做更多的工作。尝试PopupWindow与showAtLocation(查看父级,int重力,int x,int y)
虽然您可以使用GoogleMap.setInfoWindowAdapter()
将信息窗口设置为任意视图,但是在地图上呈现的信息窗口不是实时视图。相反,它是适配器返回视图时的视图快照(请参见GoogleMap.setInfoWindowAdapter()
)。因此,不幸的是,一旦将其放置在地图上,它的行为就不会像标准视图。
也许您可以在InfoWindowClickListener中设置自定义的AlartDialog来切换某些事件
here
CustomInfoWindowAdapter设置标签:
map.setOnInfoWindowClickListener(new OnInfoWindowClickListener() {
public void onInfoWindowClick(Marker marker) {
String[] items={"onefunction","twofunction"};
AlertDialog.Builder itemDilog = new AlertDialog.Builder(context);
itemDilog.setTitle("");
itemDilog.setCancelable(false);
itemDilog.setItems(items, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
switch(which){
case 0:{
onefunction();
}break;
case 1:{
twofunction();
}break;
}
}
});
itemDilog.show();
}
});
和:
mWindow.findViewById(R.id.chat).setTag("chatTag");