我在我的应用程序中使用一个Map控件,我需要将可见区域设置为覆盖所有引脚的方式。讽刺是相同的代码不能同时在两个平台上工作,iOS的工作很笨拙,下面的代码产生了两个平台中几乎相同的可见区域。
if(Device.OS == TargetPlatform.iOS)
customMap.MoveToRegion (MapSpan.FromCenterAndRadius (customMap.CustomPins [0].Pin.Position, Distance.FromMiles (0.20)));
if(Device.OS == TargetPlatform.Android)
customMap.MoveToRegion (MapSpan.FromCenterAndRadius (customMap.CustomPins [0].Pin.Position, Distance.FromMiles (55.0)));
有人能解释吗?我为什么要像它那样编码?
发布于 2016-05-10 11:45:07
我找到了一个解决办法,我正在等待一些解释,然后才能接受我自己的答案。
Device.StartTimer(TimeSpan.FromMilliseconds(500), () =>
{
customMap.MoveToRegion(MapSpan.FromCenterAndRadius(customMap.CustomPins [0].Pin.Position, Distance.FromMiles(55.0)));
return false;
});
发布于 2018-04-23 13:05:18
我遇到了一个问题,当MovetoRegion在IOS和安卓系统上使用Xamarin Geolocator插件时,它被延迟了(15-30秒)。与Saket的方法和500毫秒的延迟,事情工作得更好。这是我的代码片段,希望这能帮到别人。
private void CenterOnMe_Clicked(object sender, EventArgs e)
{
var locator = CrossGeolocator.Current;
var t = Task.Run(async () =>
{
var position = await locator.GetPositionAsync(TimeSpan.FromSeconds(10));
Device.StartTimer(TimeSpan.FromMilliseconds(500), () =>
{
AroundMeMap.MoveToRegion(
MapSpan.FromCenterAndRadius(
new Position(position.Latitude, position.Longitude), Distance.FromMiles(1)));
return false;
});
});
}
https://stackoverflow.com/questions/37147296
复制相似问题