私のピンはasync
です。私はカスタムマップを使用しないとうまく動作します。しかし、私がAndroid project
でカスタムマップを使用しても、それはもう動作しません。私のcustom Pin list
はnullです。私はそれが非同期のピンをロードしているし、カスタムピンのリストが初期化されていないので、それが理解できます。しかし、私はそれをどのように解決するのですか?すべてのプラットフォーム(Android、iOS、UWP)でこれを修正するのは大変な作業ですか?Xamarin.Forms Android projロードピン非同期
public CustomMap Map { get; set; }
public async Task InitilizePins()
{
var pins = (await new SamplePins().GetPinsAsync()).ToList();
Map.CustomPins = pins;
foreach (var customPin in pins)
{
Map.Pins.Add(customPin.Pin);
}
}
public class CustomMap : Map
{
public List<CustomPin> CustomPins { get; set; }
}
これはAndroidのカスタムマップです。私のカスタムピンは、私のフォームマップ変数上でnullです。
List<CustomPin> customPins;
protected override void OnElementChanged(ElementChangedEventArgs<Map> e)
{
base.OnElementChanged(e);
if (e.OldElement != null)
{
NativeMap.InfoWindowClick -= OnInfoWindowClick;
}
if (e.NewElement != null)
{
var formsMap = (CustomMap)e.NewElement;
customPins = formsMap.CustomPins;
((MapView)Control).GetMapAsync(this);
}
}
これを追跡するには、完全なサンプルプロジェクトが必要であることを確かめてください。しかし、あなたのレンダラーはあなたのピンを設定する前に呼び出されるのが最も一般的です。 –