我正在尝试将Xamarin.Forms页面添加到现有的Xamarin Android应用程序中。
我正在努力弄清楚如何混合原生Xamarin Android页面和Xamarin.Forms页面。
我见过的所有文章和示例都描述了Forms或Xamarin应用程序,而不是两者的混合。
到目前为止,我读到的最好的想法是添加一个本机存根,并用Xamarin.Forms内容替换内容,但我不知道如何实现这一点。
更新
我正在使用MvvmCross,所以我的android视图继承自MvxActivity。我有一个StackLayout包含使用Xamarin.Forms的视图。如何让XF转换为Android代码,以便我可以使用SetContentView?
答案 0 :(得分:2)
当您创建新的 Xamarin.Forms 项目时,例如使用 SharedProject 方法,它将创建将为您执行的启动器项目和初始类文件对于每个平台。
例如,在 Android 上,这是在 MainActivity.cs 中。如果您查看此文件,您会发现它继承自 AndroidActivity ,后者继承自活动,这是活动中使用的典型类。
因此,您可以使用两种方法来创建混合混合解决方案: -
1)如果要显示 Xamarin.Forms >,请继续平台特定 存根页中的 AndroidActivity 强>内容,或者
2)继承活动,并照常执行。
如果您想在存根页面中显示 Xamarin.Forms 页面,那么您可以在 OnCreate 方法: -
SetPage({some class that returns a Xamarin.Forms.Page object, i.e. ContentPage});
然后,您可以使用特定于 Android 的常规导航来显示 Xamarin.Forms 页面或特定于平台的活动页。