Android Google Maps V2:如何以编程方式隐藏mapToolbar,或者如何使用mapToolbar调用InfoWindow的隐藏行为?

Android Google Maps V2:如何以编程方式隐藏mapToolbar,或者如何使用mapToolbar调用InfoWindow的隐藏行为?,android,google-maps-api-2,marker,Android,Google Maps Api 2,Marker,当您单击Google Maps V2的标记时,会出现信息窗口以及中的幻灯片。我想在单击信息窗口时隐藏信息窗口和地图工具栏。否则,用户必须单击信息窗口旁边的任何位置来关闭这两个窗口,但这不是一个好的可用性,因为信息窗口有点大。我可以通过实现OnInfo WindowClickListener并重写OnInfo WindowClick() 方法setMapToolbarEnabled(布尔值)仅禁用或启用整个工具栏。不是我想要的。实际上,我并不期望有隐藏方法或类似的方法 我真正想要的是具有与单击信息

当您单击Google Maps V2的标记时,会出现信息窗口以及中的幻灯片。我想在单击信息窗口时隐藏信息窗口和地图工具栏。否则,用户必须单击信息窗口旁边的任何位置来关闭这两个窗口,但这不是一个好的可用性,因为信息窗口有点大。我可以通过实现OnInfo WindowClickListener并重写OnInfo WindowClick()

方法setMapToolbarEnabled(布尔值)仅禁用或启用整个工具栏。不是我想要的。实际上,我并不期望有隐藏方法或类似的方法

我真正想要的是具有与单击信息窗口旁边相同的行为。这意味着隐藏信息窗口并滑出地图工具栏。因此,要么有办法滑出mapToolbar(首选解决方案),要么我需要知道如何模拟信息窗口旁边的单击。我怎样才能做到这一点

[更新]
我通过变通解决了这个问题。我抑制了原来的信息窗口并创建了自己的信息窗口,因此我绕过了最初的谷歌地图行为。(本例中的
OnMarkerClickListener
是从库中使用的,
onNippetVisibilityListener
只是MainActivity实现的一个界面,用于在单击标记时获得通知,以便显示我自己的代码段。
OnInfoWindowClickListener
不再使用。)唯一麻烦的任务是计算代码段窗口(只是一个视图)在标记上方的正确位置,因为您必须以编程方式将dp转换为像素):

main活动:

private com.androidmapsextensions.GoogleMap googleMap;
googleMap.setOnMarkerClickListener(new CustomMarkerClickListener(googleMap, this));
CustomMarkerClickListener

public class CustomMarkerClickListener implements OnMarkerClickListener
{
    private GoogleMap googleMap;
    private Context context;
    private OnSnippetVisibilityListener onSnippetVisibilityListener;
    private final Logger logger = new Logger(CustomMarkerClickListener.class.getSimpleName());

    public CustomMarkerClickListener(GoogleMap map, Context context)
    {
        this.googleMap = map;
        this.context = context;
        onSnippetVisibilityListener = (OnSnippetVisibilityListener)context;
    }

    @Override
    public boolean onMarkerClick(Marker marker)
    {
        logger.log("onMarkerClick()", LogController.isLoggingEnabled(), Log.DEBUG);

        //suppress the real InfoWindow
        marker.hideInfoWindow();

        //some more code...

        onSnippetVisibilityListener.onSnippetVisible(true, marker);

        //It needs to return true to NOT execute the default behaviour
        return true;
    }
}

“你有没有找到实现这一目标的方法?”rion18是的,我绕过了它。我可以在10小时左右回到家后告诉你答案。(我想我写了一个自己的代码片段处理程序,因为它无法在默认的广告中显示AdMob广告)那太棒了,thanks@rion18我用我的解决方案更新了这个问题。我会试试看是否可以正确隐藏(滑出)地图工具栏。。。谢谢
public class CustomMarkerClickListener implements OnMarkerClickListener
{
    private GoogleMap googleMap;
    private Context context;
    private OnSnippetVisibilityListener onSnippetVisibilityListener;
    private final Logger logger = new Logger(CustomMarkerClickListener.class.getSimpleName());

    public CustomMarkerClickListener(GoogleMap map, Context context)
    {
        this.googleMap = map;
        this.context = context;
        onSnippetVisibilityListener = (OnSnippetVisibilityListener)context;
    }

    @Override
    public boolean onMarkerClick(Marker marker)
    {
        logger.log("onMarkerClick()", LogController.isLoggingEnabled(), Log.DEBUG);

        //suppress the real InfoWindow
        marker.hideInfoWindow();

        //some more code...

        onSnippetVisibilityListener.onSnippetVisible(true, marker);

        //It needs to return true to NOT execute the default behaviour
        return true;
    }
}