[英]Xamarin how to open xamarin forms page from android project?
I want to open Xamarin forms page from Xamarin Android project. 我想从Xamarin Android项目打开Xamarin表单页面。 On android project I created toolabar item image, where I am calling event to open page from Xamarin forms project.
在android项目中,我创建了太棒项目图像,我在这里调用事件从Xamarin表单项目打开页面。
Here is my MainActivity.cs toolabar image item implementation: 这是我的MainActivity.cs toolabar图像项实现:
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsApplicationActivity
{
private IMenu CurrentMenu { get; set; }
private ImageView imgSmallC { get; set; }
public override bool OnCreateOptionsMenu(IMenu menu)
{
ActionBar.DisplayOptions = ActionBarDisplayOptions.HomeAsUp | ActionBarDisplayOptions.ShowCustom | ActionBarDisplayOptions.ShowTitle | ActionBarDisplayOptions.ShowHome;
LayoutInflater inflater = (LayoutInflater)ActionBar.ThemedContext.GetSystemService(LayoutInflaterService);
View customActionBarView = inflater.Inflate(Resource.Layout.actionbar_custom_view_done, null);
imgSmallC = (ImageView)customActionBarView.FindViewById<ImageView>(Resource.Id.ImgSmallC);
imgSmallC.Click += (object sender, EventArgs args) =>
{
StartActivity(typeof(MyPopupPage));
};
return base.OnCreateOptionsMenu(menu);
}
}
In StartActivity I am calling MyPopupPage.xaml page from Xamarin forms project, but unfortunately when I am debugging project and I click on toolbar image I get such a error: 在StartActivity中,我从Xamarin表单项目调用MyPopupPage.xaml页面,但不幸的是,当我调试项目时,我点击工具栏图像时出现这样的错误:
System.ArgumentException: type Parameter name: Type is not derived from a java type.
System.ArgumentException:type参数名称:Type不是从java类型派生的。
You can not use a Xamarin.Form
based Page
as an Android Activity
, they are two completely different things . 你不能使用基于
Xamarin.Form
的Page
作为Android Activity
,它们是两个完全不同的东西 。
You can access the Xamarin.Forms
Application
singleton from the Xamarin.Android
project and use that to PushModelAsync
or PushAsync
您可以从
Xamarin.Android
项目访问Xamarin.Forms
Application
单例并将其用于PushModelAsync
或PushAsync
await Xamarin.Forms.Application.Current.MainPage.Navigation.PushModalAsync(new PushPageFromNative.MyPage());
Dependency Service
-based Example: Dependency Service
的示例: Interface: 接口:
using System;
namespace PushPageFromNative
{
public interface IShowForm
{
void PushPage();
}
}
Xamarin.Form
-based code: 基于
Xamarin.Form
的代码:
var pushFormBtn = new Button
{
Text = "Push Form",
VerticalOptions = LayoutOptions.CenterAndExpand,
HorizontalOptions = LayoutOptions.CenterAndExpand,
};
pushFormBtn.Clicked += (sender, e) =>
{
DependencyService.Get<IShowForm>().PushPage();
};
Xamarin.Android
Dependancy Implementation: Xamarin.Android
Dependancy实施:
async public void PushPage()
{
// Do some Android specific things... and then push a new Forms' Page
await Xamarin.Forms.Application.Current.MainPage.Navigation.PushModalAsync(new PushPageFromNative.MyPage());
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.