【发布时间】:2014-10-14 03:45:45
【问题描述】:
我有一个我正在尝试创建的地图视图,但它比地图实现要先进一点 由 Xamarin.Forms 提供。我想知道是否有嵌入本机视图的模式 主详细信息页面。
在示例图像中,顶部导航栏将在 Xamarin 中构建,以紫色突出显示的内容部分应根据平台单独创建。
【问题讨论】:
标签: android google-maps xamarin xamarin.forms
我有一个我正在尝试创建的地图视图,但它比地图实现要先进一点 由 Xamarin.Forms 提供。我想知道是否有嵌入本机视图的模式 主详细信息页面。
在示例图像中,顶部导航栏将在 Xamarin 中构建,以紫色突出显示的内容部分应根据平台单独创建。
【问题讨论】:
标签: android google-maps xamarin xamarin.forms
这通常是渲染器可以接管的地方。
参见Customizing Controls for Each Platform 和Forms2Native 示例。
您将创建一个 MapContentPage 扩展 ContentPage 并在顶部具有一个属性:
[组装:ExportRenderer(typeof(MapContentPage),typeof(MapContentPageRenderer))]
然后您将创建一个名为 MapContentPageRenderer 的 Android 渲染器,并在其 OnElementChanged 中,您将使用 Android 代码的“常规”Mono 实例化地图。
【讨论】:
您将需要实现一个自定义渲染器以在您自己的控件中创建自定义地图实现,因为目前您的 Xamarin.Forms Map 控件相当有限已经知道了。
每个渲染器都针对特定平台(iOS、Android、Windows Phone)。因此,例如使用 Android,您将根据 Android 等平台特定的地图控件创建自定义渲染器。
然后,您将能够基于您的通用 View 为每个特定于平台的控件渲染器构建功能,这将在 Xamarin.Forms 页面中公开您想要的模型使用。
有一个有用的视频here 深入介绍了如何创建您可能会觉得有用的自定义渲染器。
基本上,您可以在 Android 平台等上执行的任何操作都可以放入自定义渲染器中,这样您就可以将其用作跨平台 Xamarin.Forms 页面的一部分.
【讨论】: