c# - Xamarin 表单 : Android - No suitable method found to override OnElementChanged()

标签 c# android google-maps xamarin.android xamarin.forms

我正在编写一个 Xamarin Forms 应用程序,它在 map 上显示纬度/经度坐标的多边形。我正在经历this用于为 map 上的多边形叠加层添加自定义渲染器的 Xamarin 教程。

我在我的 Android 项目中创建了一个名为 CustomMapRenderer.cs 的类继承自 Android 的 MapRenderer类(class)。在这个类中,我试图覆盖 OnElementChanged方法,但我遇到了错误

1) CustomMapRenderer.OnElementChanged(ElementChangedEventArgs<View>)': no suitable method found to override

2) Argument 1: cannot convert from 'Xamarin.Forms.Platform.Android.ElementChangedEventArgs<Xamarin.Forms.View> to 'Xamarin.Forms.Platform.Android.ElementChangedEventArgs<Xamarin.Forms.Maps.Map>

我很困惑,因为这段代码尚未根据上面链接的教程进行修改。

这是我的代码:

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);
        }
    }

  }
}

最佳答案

由于您继承自 MapRenderer您应该重写的方法是

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

关于c# - Xamarin 表单 : Android - No suitable method found to override OnElementChanged(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45135622/

相关文章:

android - 如何使 GridView 在屏幕上居中

android - 创建一个 "Global"AlertDialog

c# - HttpContext.Current 如何处理 IIS 管道中的每个请求?

c# - 在 C# 中使用 github 风格的 markdown

c# - Setter Property Required 原始依赖项未明确定义

android - 支持库版本 28.0.0 TabLayout bug

c# - 如何使用linq过滤类列表中的列表?

javascript - Google Maps API 如何与 AngularJS 协同工作?

php - 谷歌地图不显示标记

android - 多个 map View ?