マップ上に緯度/経度座標のポリゴンを示すXamarinフォームアプリケーションを作成しています。私はthis Xamarinのチュートリアルで、地図上のポリゴンオーバーレイ用のカスタムレンダラーを追加する予定です。Xamarinフォーム:Android - OnElementChanged()をオーバーライドする適切なメソッドが見つかりません
AndroidのMapRenderer
クラスからのCustomMapRenderer.cs
というクラスをAndroidプロジェクトに作成しました。このクラスでは、私は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);
}
}
}
}
である。これはXamarin.Droidにマップが表示されるように努めましたが、私はどんなことに気づきましたmap.MoveToRegionなどのPCLのFormsマップから渡された設定は一見無視されますが、Xamarin.iOSではそうではありません。これについての洞察? –
このスレッドでは、この問題について説明し、回避方法を示します。https://forums.xamarin.com/discussion/92565/android-ionmapreadycallback-forms-2-3-4#latest –