嵌入Xamarin表单或本机嵌入

时间:2017-06-07 15:47:11

标签: c# xamarin xamarin.forms

我将创建一个我需要原生地图的应用程序。我可以在所有页面上使用Xamarin本机和Embedding Xamarin.Forms in Xamarin Native执行应用程序,而不使用带有地图的页面。或者,如果可能的话,我会做一个Xamarin Forms应用并嵌入原生地图控件,如果可能的话?我看过Adding Platform-Specific Controls to a Xamarin.Forms Layout但是地图是否包括在内?或者它只是"小"控件作为标签?

我应该使用什么?

3 个答案:

答案 0 :(得分:2)

原生嵌入很难实现(您基本上需要使用共享项目而不是PCL),因此对于许多人来说,使用CustomRenderers更容易。

Xamarin.Forms嵌入另一方面,仍然预览看起来很容易使用,但说实话我不知道它给我们带来了什么好处。就像我们制作本机应用程序一样,为什么我们需要将xamarin.forms加载到我们的项目中,这不仅会使我们的应用程序更大,而且会使其更难以遵循。

我从您的问题中看到的方法是使用Xamarin.Forms here提供的地图,如果有必要,您可以访问它的自定义渲染器。或者使用他们已经扩展地图的TKCustomMap

答案 1 :(得分:2)

当开发人员跟进时,我正在帮助一个项目,这似乎对他有用。他做了Xamarin Forms,创建了

public class CustomMap : Map

其中Map是Xamarin.Forms.Maps.Map。然后创建自定义渲染器

[assembly: ExportRenderer(typeof(CustomMap), typeof(CustomMapRenderer))]
namespace CustomRenderer.iOS
{
    public class CustomMapRenderer : MapRenderer

[assembly:ExportRenderer (typeof(CustomMap), typeof(CustomMapRenderer))]
namespace CustomRenderer.Droid
{
    public class CustomMapRenderer : MapRenderer, GoogleMap.IInfoWindowAdapter, IOnMapReadyCallback

然后你可以用CustomPins,InfoWindow等做很多事情

答案 2 :(得分:0)

您可以在xamarin表单应用中嵌入任何本机控件。这是一个已发布的功能,而嵌入本机应用程序的xamarin.forms仍在预览中。

我会按照你的建议嵌入原生地图,或者为表格中已有的地图控件做一个自定义渲染器。