我想在我的本机 Android页面控件中使用Xamarin.Form控件.在我的Android本机页面中有没有办法在我的Native Android Fragment或LinearLayout中加载Xamarin.Form页面?

根据Xamarin可能.但是我找不到如何实现这一点.

解决方法

有几件事情正在讨论中,所以对我来说是如此:

图片片段,从我所了解的:

"Not only are Xamarin.Forms pages mixable with custom screens" ...

这就像@Stephane提到允许应用程序使用本机屏幕以及Xamarin.Forms屏幕.每个平台存根页面都可以在应用程序中的任何一点引入一个共享的Xamarin.Forms页面.您不必使用Xamarin.Forms导航堆栈.

"but you can embed custom views built directly against Xamarin.IOS and Xamarin.Android into Xamarin.Forms pages."

这是@Sten所提到的,如果您创建平台特定的ContentRenderers,您可以将任何种类的本地控件渲染到现有的Xamarin.Forms页面中,方法是将此常见视图传递给每个平台渲染器.

所以,例如,如果你有一个视图:

public class MyView : ContentView
 {
     // Create some bindable properties here that can be used in your platform specific renderer,// i.e. displayText etc.
 }

您可以在Xamarin.Forms页面定义中使用上述内容,然后创建将被调用以呈现内容的平台特定渲染器.

在这些平台内,您可以在每个平台上使用本机控件,具体的内容渲染器类.

例如在ContentRenderer中,对于OnElementChanged事件,您可以对WindowsPhone执行以下操作:

protected override void OnElementChanged(Xamarin.Forms.Platform.WinPhone.ElementChangedEventArgs<MyView> e)
 {
     base.onElementChanged(e);
     ...
     System.Windows.Controls.TextBox objplatformSpecificTextBox = new System.Windows.Controls.TextBox();
     ... 
     ...

然而,@Gulshan真正想要的是,我相信是将一个本地页面与Xamarin.Forms内容呈现在已经存在的本地页面中的特定点的中心.

它有点颠倒了,但在思考中,这仍然是可行的:

为了实现这一点,您需要激发页面生成到一个临时的新页面.

例如在WindowsPhone中,您将通过以下方式执行此操作: –

PhoneApplicationPage objInnerPage_Temp = new PhoneApplicationPage();
        UIElement objInnerContent = App.GetMainPage().ConvertPagetoUIElement(objInnerPage_Temp);

在平台上特定的页面.

然后,您可以将渲染的内容注入到平台上适当的本机容器,即网格.

更新1: –

==========

虽然它在WindowsPhone上很容易做到这一点,但似乎这不可能在Android中尝试类似的事情.

Android页面创建非常锁定,即您无法访问其内部在AndroidActivity中使用的画布和/或布局的专用字段.

如果可能,那么您可以重新使用此操作,并将所呈现的内容与WindowsPhone平台的解决方案相似.

此外,Platform类也被标记为内部,防止另一种方式生成渲染的内容.

有一个希望,我正在考虑从Fragment实现一个活动进入它,这可以很好的工作 – 但是,这里的问题是,Xamarin.Forms的实现是期待ActionBar可用,它是而不是,如果它不可用,则它们不会检查if方案是否允许执行继续,因此它会抛出异常以阻止页面内容生成.

因此看起来不太可能吗?除非他们打开AndroidActivity中的布局/画布字段或者解决ActionBar期望问题.

c# – 如何使用Xamarin.Form控件和本地控件在同一页面上的更多相关文章

  1. xamarin – 崩溃在AccountStore.Create().保存(e.Account,“);

    在Xamarin.Forms示例TodoAwsAuth中https://developer.xamarin.com/guides/xamarin-forms/web-services/authentication/oauth/成功登录后,在aOnAuthenticationCompleted事件中,应用程序在尝试保存到Xamarin.Auth时崩溃错误说不能对钥匙串说期待着寻求帮助.解决方法看看你

  2. Xamarin可以用来制作iOS,Android和WEB应用吗?

    Xamarin旨在通过在C#中编码来创建原生iOS,Android和Windows应用程序.但它还可以生成一个网络应用程序吗?如果没有,是否有一些解决方案可以让我们这样做?解决方法您可以在PCL库中编写后端代码,这些代码可以在您的移动应用程序和您的网站之间共享.但是,网络前端需要与移动前端分开编写.

  3. Xamarin.UITests – 在真实设备上测试 – iOS – 应用程序权限弹出窗口问题

    我的iOS应用需要一些特权(GPS,推送通知).当应用程序第一次启动时,iOS会询问用户是否可以将这些权限授予应用程序.我写过一些UITests,想要在本地连接的iPhone上自动运行它们.问题是我无法覆盖权限问题,我的测试失败.我发现IDE(XamarinStudio)部署的应用程序将要求权限,但是通过UITests部署的应用程序不会.所以我尝试使用.AppBundle(path_to_app)

  4. Xamarin iOS图像在Grid内部重叠

    heyo,所以在Xamarin我有一个使用并在其中包含一对,所有这些都包含在内.这在Xamarin.Android中看起来完全没问题,但是在Xamarin.iOS中,图像与标签重叠.我不确定它的区别是什么–为什么它在Xamarin.Android中看起来不错但在iOS中它的全部都不稳定?

  5. Xamarin.iOS UITableView,你如何强制更新单元格?

    更新UITableView单元格而不是擦除它们并重新添加它们似乎非常麻烦.更新单个细胞的最佳方法是什么?解决方法假设您的UITableView存储在“tableView”变量中:

  6. xamarin.ios – Facebook iOS SDK:应用程序在启动时找不到“找不到符号:_ACFacebookAppIdKey.”仅在iOS 5中崩溃

    解决方法这是一个已修复的knownbug.目前唯一已知的解决方法是使用较旧版本的FacebookSDK.

  7. ios – Xamarin Ahead-of-Time(AOT)编译器与普通编译器

    我的理解是Xamarin的Ahead-of-Time编译器直接将Xamarin.iOS应用程序编译为本机ARM汇编代码.然而,我没有得到的是为什么它需要被称为“Ahead-of-Time”而不仅仅是一个普通的编译器.Xamarin的AOT编译器和传统编译器之间有什么区别,还是仅仅是一个营销术语?没有.Xamarin在该段中传达的信息是,他们的代码比简单的基于字节码的语言执行得更快.对于iOS和Android,他们都能够在热代码路径上执行本机代码以提高性能.AOT和JIT这两个术语是关于他们如何做到这一点的

  8. Xamarin.iOS中的选择器可用

    我一直在搜索,但既没有例子,也没有建立信息;但是,它可以在Xamarin.Form中使用.解决方法一个真实的UIPickerView快速示例:将UIPickerView添加到名为slotMachineView的xib或Storyboard中:

  9. 无法在设备上启动Xamarin.iOS应用程序

    解决方法这看起来像某些东西被缓存在某处或者没有正确更新.以下是几个想法:>从设备中删除该应用.>清洁&重建你的应用程序>建立&从Mac上的XamarinStudio安装.>将Debug配置复制到新配置,然后运行该配置.

  10. MEF对Xamarin.iOS的支持

    解决方法这取决于你是MEF支持的意思.使用MMA程序集可以使用Xamarin.iOS.什么是不可能的是动态加载您的应用程序中的代码.您可以使用MEF,同时确保没有加载动态代码,即所有内容都被静态引用并构建在单个二进制可执行文件中.根据您的应用程序可能证明是有用的.在后一种情况下,您的问题是与iOS本身.

随机推荐

  1. c# – (wpf)Application.Current.Resources vs FindResource

    所以,我正在使用C#中的WPF创建一个GUI.它看起来像这样:它现在还没有完成.这两行是我尝试制作一种数据表,它们在XAML中是硬编码的.现在,我正在C#中实现添加新的水果按钮功能.我在XAML中有以下样式来控制行的背景图像应该是什么样子:因此,在代码中,我为每列col0,col1和col2创建一个图像,如果我使用以下代码,它添加了一个如下所示的新行:如你所见,它不太正确……为什么一个似乎忽略了一些属性而另一个没有?

  2. c# – 绑定DataGridTemplateColumn

    似乎我已经打了个墙,试图在DataGrid上使用DataTemplates.我想要做的是使用一个模板来显示每个单元格的两行文本.但是似乎无法以任何方式绑定列.以下代码希望显示我想做的事情.注意每个列的绑定:模板列没有这样的东西,因此,这个xaml不可能工作.我注定要将整个DataTemplate复制到每个列,只是对每个副本都有不同的约束?解决方法我不完全确定你想要做什么,但如果您需要获取整行的DataContext,可以使用RelativeSource绑定来移动视觉树.像这样:

  3. c# – 学习设计模式的资源

    最近我来到了这个设计模式的概念,并对此感到非常热情.你能建议一些帮助我深入设计模式的资源吗?

  4. c# – 是否有支持嵌入HTML页面的跨操作系统GUI框架?

    我想开发一个桌面应用程序来使用跨系统,是否有一个GUI框架,允许我为所有3个平台编写一次代码,并具有完全可脚本化的嵌入式Web组件?我需要它有一个API来在应用程序和网页之间进行交流.我知道C#,JavaScript和一些python.解决方法Qt有这样的事情QWebView.

  5. c# – 通过字符串在对象图中查找属性

    我试图使用任意字符串访问嵌套类结构的各个部分.给出以下(设计的)类:我想要从Person对象的一个实例的“PersonsAddress.HousePhone.Number”获取对象.目前我正在使用反思来做一些简单的递归查找,但是我希望有一些忍者有更好的想法.作为参考,这里是我开发的(crappy)方法:解决方法您可以简单地使用标准的.NETDataBinder.EvalMethod,像这样:

  6. c# – 文件下载后更新页面

    FamilyID=0a391abd-25c1-4fc0-919f-b21f31ab88b7&displaylang=en&pf=true它呈现该页面,然后使用以下元刷新标签来实际向用户提供要下载的文件:你可能需要在你的应用程序中做类似的事情.但是,如果您真的有兴趣在文件完全下载后执行某些操作,那么您的运气不佳,因为没有任何事件可以与浏览器进行通信.执行此操作的唯一方法是上传附件时使用的AJAXupload.

  7. c# – 如何在每个机器应用程序中实现单个实例?

    我必须限制我的.net4WPF应用程序,以便每台机器只能运行一次.请注意,我说每个机器,而不是每个会话.我使用一个简单的互斥体实现单实例应用程序,直到现在,但不幸的是,这样一个互斥是每个会话.有没有办法创建机器互连,还是有其他解决方案来实现每个机器应用程序的单个实例?

  8. c# – WCF和多个主机头

    我的雇主网站有多个主机名,都是同一个服务器,我们只是显示不同的皮肤来进行品牌宣传.不幸的是,在这种情况下,WCF似乎不能很好地工作.我试过overridingthedefaulthostwithacustomhostfactory.这不是一个可以接受的解决方案,因为它需要从所有主机工作,而不仅仅是1.我也看过thisblogpost,但是我无法让它工作,或者不是为了解决我的问题.我得到的错误是“这

  9. c# – ASP.NET MVC模型绑定与表单元素名称中的虚线

    我一直在搜索互联网,试图找到一种方式来容纳我的表单元素的破折号到ASP.NET的控制器在MVC2,3或甚至4中的默认模型绑定行为.作为一名前端开发人员,我更喜欢在我的CSS中使用camelCase或下划线进行破折号.在我的标记中,我想要做的是这样的:在控制器中,我会传入一个C#对象,看起来像这样:有没有办法通过一些正则表达式或其他行为来扩展Controller类来适应这种情况?我讨厌这样的事实,我必须这样做:甚至这个:思考?

  10. c# – 用户界面设计工具

    我正在寻找一个用户界面设计工具来显示文档中可能的GUI.我不能生成代码.我知道MicrosoftVisio提供了一个功能.但有什么办法吗?您使用哪种软件可视化GUI?

返回
顶部