You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Xamarin Android Activity跳转至Xamarin Forms页面

解决Xamarin Android Activity跳转至Xamarin Forms页面的问题

你的两种方法都错在混淆了**Android原生布局(.axml)和Xamarin.Forms页面(.xaml)**的概念,以下是正确的实现方式:

核心错误分析

  • 第一种方法里你实例化的zxing_android.Resources.layout.Page2()是Android的原生布局文件,不是Xamarin.Forms的ContentPage类,无法通过Forms导航栈跳转。
  • 第二种方法用Intent跳转的是Activity类型,但你的Page2是Forms页面,不是Android原生Activity,所以Intent无法识别。

正确实现步骤

前提准备

确保你的项目中已初始化Xamarin.Forms:在MainActivity的OnCreate方法中添加初始化代码:

protected override void OnCreate(Bundle savedInstanceState)
{
    base.OnCreate(savedInstanceState);
    Xamarin.Forms.Forms.Init(this, savedInstanceState); // 必须调用,初始化Forms环境
    // 你的其他初始化代码
}

方法一:通过Forms导航栈跳转(适用于已有Forms主导航的场景)

如果你的Forms应用已经设置了NavigationPage作为主页面,直接调用Forms导航方法:

// 1. 获取Forms的主导航页
if (Xamarin.Forms.Application.Current.MainPage is Xamarin.Forms.NavigationPage navPage)
{
    // 2. 实例化你的Forms Page(注意:这里是继承自ContentPage的XAML页面类,不是Android的.axml)
    var targetPage = new zxing_android.Page2(); 
    // 3. 跳转到目标页面
    navPage.Navigation.PushModalAsync(targetPage);
}

方法二:用Android Activity承载Forms页面(适用于从原生Activity独立打开Forms页面)

  1. 创建一个继承自FormsAppCompatActivity的Android Activity,用来承载Forms页面:
[Activity(Label = "Page2承载页")]
public class Page2HostActivity : Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
    protected override void OnCreate(Bundle savedInstanceState)
    {
        base.OnCreate(savedInstanceState);
        Xamarin.Forms.Forms.Init(this, savedInstanceState);
        // 将Forms页面设置为当前Activity的内容
        SetPage(new zxing_android.Page2());
    }
}
  1. 在MainActivity中通过Intent跳转到这个承载Activity:
var intent = new Intent(this, typeof(Page2HostActivity));
StartActivity(intent);

关键注意事项

  • 你的Page2必须是Xamarin.Forms.ContentPage的子类(对应XAML文件Page2.xaml和后台代码Page2.xaml.cs),而不是Android项目Resources/layout下的.axml布局文件。
  • 如果是跨平台项目,Forms页面建议放在共享库(Shared Project/.NET Standard Library)中,Android项目引用该库即可。

内容的提问来源于stack exchange,提问作者Samara Bravo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 22:05:09