我将Xamarin.Forms和Xamarin.Forms.Maps更新到新版本(2.3.4)后出现问题.
之后我还更新了Android项目中的所有Google Play服务(以及我讨厌的很多库).
主要的问题是我有一个自定义MapRenderer用于自定义引脚,在iOS和UWP工作正常,但在Android版本中这个自定义MapRenderer破坏了所有Map.任何属性更改或方法调用似乎都会被忽略.
例如,我有一个按钮来切换地图类型(混合或街道),该操作永远不会改变它.我还注意到(根据本教程:https://developer.xamarin.com/guides/xamarin-forms/application-fundamentals/custom-renderer/map/customized-pin/)属性"VisibleRegion"从未改变,所以以下代码从不执行:
protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
{
base.OnElementPropertyChanged(sender, e);
if (e.PropertyName.Equals("VisibleRegion") && !_isDrawn)
{
// Do something with your custom map
}
}
Run Code Online (Sandbox Code Playgroud)
在里面,if我曾经填充我的自定义引脚(如上面的教程),现在我的地图总是空的.
现在我在里面填充我的地图IOnMapReadyCallback,它工作正常,但我仍然有绑定问题.
如果我忽略自定义MapRendered(删除装配线),所有绑定开始工作正常,但我的地图现在有旧引脚,所有自定义都消失了(显然).
在PCL我有类似的东西MyMap.MoveToRegion(...),MyMap.MapType = _currentType;但这些说明仅适用于不使用自定义MapRenderer的情况.
我的自定义MapRenderer与上面的教程几乎相同.
自定义Map是使用C#而不是使用XAML创建的,它没有任何XAML绑定,但如果我正在使用MapRenderer,则完全忽略任何属性更改或方法调用(如MoveToRegion或MapType).
有帮助吗?
谢谢