【问题标题】:Adding Xamarin.Forms to an existing Xamarin app将 Xamarin.Forms 添加到现有 Xamarin 应用程序
【发布时间】:2014-11-26 23:38:56
【问题描述】:

我正在尝试将 Xamarin.Forms 页面添加到现有 Xamarin Android 应用。

我正在努力弄清楚如何混合使用原生 Xamarin Android 页面和 Xamarin.Forms 页面。

我看到的所有文章和示例都描述了 Forms 或 Xamarin 应用程序,而不是两者的混合体。

到目前为止,我读到的最好的想法是添加本机存根并将内容替换为 Xamarin.Forms 内容,但我不确定如何实现这一点。

更新

我正在使用 MvvmCross,所以我的 android 视图继承自 MvxActivity。我有一个 StackLayout,其中包含使用 Xamarin.Forms 的视图。如何让 XF 转换为 android 代码以便与 SetContentView 一起使用?

【问题讨论】:

    标签: xamarin mvvmcross xamarin.forms


    【解决方案1】:

    当您创建一个新的 Xamarin.Forms 项目时,例如使用 SharedProject 方法,它将创建启动器项目和将为您执行的初始类文件每个平台。

    例如,在 Android 上,它位于 MainActivity.cs 中。如果您查看此文件,您会注意到它继承自 AndroidActivity,而后者又继承自 Activity,后者是用于 Activity 的典型类。

    因此,您有两个选项可用于创建混合混合解决方案:-

    1) 如果您希望显示 Xamarin.Forms 内容,或者

    2) 从 Activity 继承,照常做。

    如果您想从 stub-page 显示 Xamarin.Forms 页面,您可以在 中使用如下样板代码>OnCreate 方法:-

     SetPage({some class that returns a Xamarin.Forms.Page object, i.e. ContentPage});
    

    然后,您可以使用特定于 Android 的常规导航来显示 Xamarin.Forms 页面或特定于平台的 Activity页面。

    【讨论】:

    • 听起来很有趣。不幸的是,我正在使用 MvvmCross 并且有一个不能转换为 AndroidActivity 的 MvxActivity。我可以在我的 android 页面中获得 StackLayout 和 SetContentView,但是如何将 StackLayout 转换为 android 可以识别的东西?
    猜你喜欢
    • 1970-01-01
    • 2012-01-27
    • 1970-01-01
    • 1970-01-01
    • 2016-06-02
    • 1970-01-01
    • 2016-06-25
    • 2012-01-27
    • 1970-01-01
    相关资源
    最近更新 更多