C# Xamarin表单:Android-未找到覆盖OnElementChanged()的合适方法

C# Xamarin表单:Android-未找到覆盖OnElementChanged()的合适方法,c#,android,google-maps,xamarin.android,xamarin.forms,C#,Android,Google Maps,Xamarin.android,Xamarin.forms,我正在编写一个Xamarin表单应用程序,它在地图上显示纬度/经度坐标的多边形。我正在学习Xamarin教程,为地图上的多边形覆盖添加自定义渲染器 我在Android项目中创建了一个名为custommaprederer.cs的类,它源自Android的maprederer类。在这个类中,我试图重写OnElementChanged方法,但遇到了一个错误 1)CustomMapRenderer.OnElementChanged(ElementChangedEventArgs)':找不到合适的方法来覆

我正在编写一个Xamarin表单应用程序,它在地图上显示纬度/经度坐标的多边形。我正在学习Xamarin教程,为地图上的多边形覆盖添加自定义渲染器

我在Android项目中创建了一个名为
custommaprederer.cs
的类,它源自Android的
maprederer
类。在这个类中,我试图重写
OnElementChanged
方法,但遇到了一个错误

1)
CustomMapRenderer.OnElementChanged(ElementChangedEventArgs)':找不到合适的方法来覆盖

2)
参数1:无法从'Xamarin.Forms.Platform.Android.ElementChangedEventArgs'转换为'Xamarin.Forms.Platform.Android.ElementChangedEventArgs

我很困惑,因为这段代码没有从上面链接的教程中修改

这是我的密码:

using Android.Gms.Maps;
using MapOverlay.Droid;
using SafeAgSystems.Models;
using System.Collections.Generic;
using Xamarin.Forms;
using Xamarin.Forms.Maps;
using Xamarin.Forms.Maps.Android;

[assembly: ExportRenderer(typeof(CustomMap), typeof(CustomMapRenderer))]
namespace MapOverlay.Droid
{ 
public class CustomMapRenderer : MapRenderer, IOnMapReadyCallback
  {
    GoogleMap map;
    List<Position> shapeCoordinates;

    protected override void OnElementChanged(Xamarin.Forms.Platform.Android.ElementChangedEventArgs<View> e) //Error 1
    {
        base.OnElementChanged(e); //Error2

        if (e.OldElement != null)
        {
            // Unsubscribe
        }

        if (e.NewElement != null)
        {
            var formsMap = (CustomMap)e.NewElement;
            shapeCoordinates = formsMap.ShapeCoordinates;

            ((MapView)Control).GetMapAsync(this);
        }
    }

  }
}
使用Android.Gms.Maps;
使用MapOverlay.Droid;
使用安全系统。模型;
使用System.Collections.Generic;
使用Xamarin.Forms;
使用Xamarin.Forms.Maps;
使用Xamarin.Forms.Maps.Android;
[程序集:ExportRenderer(typeof(CustomMap)、typeof(CustomMapRenderer))]
名称空间MapOverlay.Droid
{ 
公共类CustomMapRenderer:MapRenderer,IOnMapReadyCallback
{
谷歌地图;
列出形状坐标;
受保护的覆盖void OnElementChanged(Xamarin.Forms.Platform.Android.ElementChangedEventArgs e)//错误1
{
base.OnElementChanged(e);//错误2
if(e.OldElement!=null)
{
//退订
}
if(例如NewElement!=null)
{
var formsMap=(CustomMap)e.NewElement;
形状坐标=formsMap.shapeCoordinates;
((MapView)控件).GetMapAsync(this);
}
}
}
}
由于您继承了应该重写的方法,因此

protected override void OnElementChanged(Xamarin.Forms.Platform.Android.ElementChangedEventArgs<Map> e)
protected override void OnElementChanged(Xamarin.Forms.Platform.Android.ElementChangedEventArgs e)

这使映射在Xamarin.Droid上可见,但我注意到从PCL中的表单映射传递的任何配置,例如map.MoveToRegion。。。似乎被忽略了,但在Xamarin.iOS中并非如此。对此有何见解?此线程讨论此问题并提供解决方法: