向自定义InfoWindowAdapter视图添加按钮以注册点击

问题描述 投票:17回答:4

我将基于自定义布局的InfoWindowAdapter添加到基于Android Google Maps API v2的地图片段中。我在从getInfoWindow()返回的视图中放置了一个按钮,尽管它显示得非常好,但是当我单击该按钮时,窗口本身会注册一次单击(照常以淡黄色闪烁),而按钮却没有。

如何在信息窗口中使按钮“可点击”?而且,通过扩展,信息窗口内是否有任何视图?

android google-maps google-maps-android-api-2
4个回答
8
投票

相反,使用OnMarkerClickListener监听标记单击事件,并直接显示您自己的完整视图。但是,将其锚定到标记的位置可能需要做更多的工作。尝试PopupWindow与showAtLocation(查看父级,int重力,int x,int y)


9
投票

虽然您可以使用GoogleMap.setInfoWindowAdapter()将信息窗口设置为任意视图,但是在地图上呈现的信息窗口不是实时视图。相反,它是适配器返回视图时的视图快照(请参见GoogleMap.setInfoWindowAdapter())。因此,不幸的是,一旦将其放置在地图上,它的行为就不会像标准视图。


3
投票

也许您可以在InfoWindowClickListener中设置自定义的AlartDialog来切换某些事件

here

0
投票

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");
© www.soinside.com 2019 - 2024. All rights reserved.