我正在加载我的针脚async
,如果我不使用自定义地图,它会很好地工作。但是,如果我在我的Android project
中使用自定义地图,则不再有效。我的custom Pin list
为空。我可以理解这是因为我正在加载异步引脚,并且自定义引脚列表尚未初始化。但我该如何解决它?在所有平台(Android,iOS,UWP)中解决这个问题有多大功效?Xamarin.Forms在Android项目中加载引脚异步
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中的自定义地图。我的自定义引脚在我的表单地图变量上为空。
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);
}
}
为了确定我们需要完整的示例项目来跟踪此项目。但很可能你的渲染器在你设置你的引脚之前被调用。 –