问题是如何从 Android 中的活动导航到 xamarin 表单 我的整个项目都在 Xamarin Android 中,但我必须调用同一项目中的 XAML(xamarin 表单)
我试过这个... Xamarin.Forms.Application.Current.MainPage.Navigation.PushModalAsync(new zxing_android.Resources.layout.Page2());
还有这个...
Intent intent = new Intent(this, typeof(zxing_android.Resources.layout.Page2));
StartActivity(intent);
在这两种情况下都给我一个错误
如图所示,我正在尝试从 Xamarin Android MainActivity 打开 Page2.axml
谢谢!!
首先,我不建议你在xamarin.android项目中使用xaml。应该在跨平台项目中使用。
在xamarin.android项目中,如果要显示内容页,可以参考xamarin.forms项目并使用
FormsAppCompatActivity
来渲染内容页。
Xamarin.Forms
nuget 包。我安装了最新版本并将 Xamarin.Google.Android.Maerial
nuget 包更新到最新版本。Xamarin.Forms.Application
:App.xaml:
<Application xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="App3.App">
<Application.Resources>
</Application.Resources>
</Application>
App.cs:
using Xamarin.Forms.Xaml;
namespace App3
{
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class App : Xamarin.Forms.Application
{
public App()
{
InitializeComponent();
MainPage = new Page1();
}
}
}
Xamarin.Forms.Application
加载到 FormsAppCompatActivity
:using Xamarin.Forms.Platform.Android;
namespace App3
{
[Activity(Label = "Activity1",Theme = "@style/MainTheme.Base")]
public class Activity1 : FormsAppCompatActivity
{
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
Xamarin.Essentials.Platform.Init(this, savedInstanceState);
global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
LoadApplication(new App());
}
}
}
Button button = FindViewById<Button>(Resource.Id.button1);
button.Click += delegate
{
var intent = new Intent(this, typeof(Activity1));
StartActivity(intent);
};
我的项目结构: