【问题标题】:GoogleMaps marker OnClick - XamarinGoogleMaps 标记 OnClick - Xamarin
【发布时间】:2018-02-23 12:52:48
【问题描述】:

大家好,我正在使用 GoogleMaps Gms.Maps 类在我的应用 (Xamarin.Android) 上显示地图。

我正在努力做到这一点,因此当您单击标记时,它会将您带到我的移动应用程序上的特定页面。但是,标记似乎已经具有将其居中并显示标题的单击功能。我还没有创建它,也找不到它(见下文)

知道如何编辑此函数或创建一个新函数吗?

谢谢,

【问题讨论】:

    标签: android xamarin xamarin.android gmsmapview


    【解决方案1】:

    在您的ActivityFragment 或单独的类中实现Android.Gms.Maps.GoogleMap.IOnMarkerClickListener,并通过SetOnMarkerClickListener 方法将其分配给GoogleMap 实例。

    示例:

    public class MyMarkerClickListener : Java.Lang.Object, IOnMarkerClickListener
    {
        Context context;
        public MyMarkerClickListener(Context context)
        {
            this.context = context;
        }
    
        public bool OnMarkerClick(Marker marker)
        {
            Toast.MakeText(context, $"{marker.Title} was tapped", ToastLength.Long).Show();
            return true;
        }
    }
    

    用法:

    googleMap.SetOnMarkerClickListener(new MyMarkerClickListener(this));
    

    注意:通常侦听器将在OnMapReady 回调中分配

    谷歌文档:GoogleMap.OnMarkerClickListener

    返回: 如果侦听器已经消费了事件,则为 true(即不应发生默认行为);否则为 false (即,应该发生默认行为)。默认行为是让相机移动到标记处并显示一个信息窗口。

    【讨论】:

    • 我刚刚添加了这个,但是现在当我点击一个标记时,我进入了中断模式
    • @broliverparker 有什么例外?
    【解决方案2】:

    @SushiHangover 的回答是正确的,但更简单的方法是添加标记点击事件:

    Googlemapsobj.MarkerClick+= (s,e)=>
    {//yourcodeforNextPage };
    

    在这里您不必担心默认行为,因为它会在单击后立即离开页面。

    【讨论】:

    • 我更喜欢这个解决方案,因为我不必离开课堂,所以我不必提供 OnMarkerClickListener 类访问我的地图属性的方法
    猜你喜欢
    • 2018-05-10
    • 2016-12-01
    • 2017-07-11
    • 1970-01-01
    • 2014-01-03
    • 2016-08-19
    • 1970-01-01
    • 1970-01-01
    • 2016-08-17
    相关资源
    最近更新 更多