我想在我的构造函数命令中实现onAppearing
map.MoveToRegion(defaultPin)
其中map需要在中心显示默认pin的map。
这是我的代码隐藏类的一部分:
public partial class LocationPage : PostLoginContentPage
{
public LocationPage ()
{
BindingContext = ViewModel = new LocationViewModel(App.ScreenHeight, App.ScreenWidth);
InitializeComponent ();
searchFullMapImage.IsVisible = false;
map.UiSettings.ZoomControlsEnabled = false;
List<Pin> defaultPins = ViewModel.Pins;
Pin firstPinPosition = defaultPins?.FirstOrDefault(m => m.Position != null && m.Position.Latitude != 0 && m.Position.Longitude != 0);
LoadPins(defaultPins);
map.SelectedPin = firstPinPosition;
map.MoveToRegion(MapSpan.FromCenterAndRadius(firstPinPosition.Position, Distance.FromMeters(10000)), true);
}
//some other methods...
}
此外,我如何绑定?例如,单击按钮向我显示罗马?我使用的是XF。谷歌地图2.3.0和Xamarin。表格2.5.4.444
好的,要使其正常工作,您需要在移动地图之前确保地图已准备好。我建议将代码移到viewModel中,并在那里绑定属性。因此,您可以检查mapReady(很抱歉,如果属性名称不同,但有点像(
然后在你确定地图已经准备好并且可以移动之后。你应该确保它是在UI线程上执行的,否则它不会移动。
为了确保它将你可以使用,
Device.BeginInvokeOnMainThread (() => {
map.MoveToRegion(MapSpan.FromCenterAndRadius(firstPinPosition.Position,
Distance.FromMeters(10000)), true);
});