我正在为iOS和Android开发一个xamarin项目,我们在Xamarin上显示自定义标记。表单Map,我们希望用户在点击自定义标记时导航到另一个视图。
我们使用Navigation.PushAsync在视图中导航。这是从viewmodels从非平台特定的代码和导航完成的。PushAsync只能在那里使用,而不能从平台特定的代码使用。这是customMapRenderers所在的位置,也是处理标记onclick的位置。
所以我的问题是我如何从这些onClick事件导航到另一个视图?下面是捕获onclick的方法。
安卓系统:
private void OnMarkerClick(object sender, GoogleMap.MarkerClickEventArgs e)
{
Toast.MakeText(MainApplication.Context, "Button Pressed", ToastLength.Long).Show();
}
iOS操作系统:
private void OnDidSelectAnnotationView(object sender, MKAnnotationViewEventArgs e)
{
UIAlertView alert = new UIAlertView()
{
Title = "Event",
Message = "Button Clicked"
};
alert.AddButton("Oke");
alert.Show();
}
1条答案
按热度按时间wfsdck301#
正如Yuri所说,你可以通过使用Messenger来实现这一点,这里有一个关于如何使用
Messenger
的sample。您可以在custom renderer
onClick事件中使用它,当在renderer
中发送message
时,Page
将收到Message
。因此,您可以在Page的MessagingCenter.Subscribe
方法中导航到另一个视图。页码:
自定义渲染器: