带有 xamarin 表单的 xamarin 本机视图加载缓慢

Posted

技术标签:

【中文标题】带有 xamarin 表单的 xamarin 本机视图加载缓慢【英文标题】:xamarin native with xamarin forms views loads slow 【发布时间】:2022-01-20 09:51:08 【问题描述】:

我已经使用 Xamarin Native for iosandroid 开发一个应用程序很长时间了。最近我开始在表单中制作新视图并在本机应用程序中使用它们。这对开发过程来说是一个巨大的改进,也是最终向表单迈进的一步。我确实有一些问题,特别是在 android 上,第一次打开表单视图需要很长时间,第二次就像打开普通的原生视图一样。这真的很烦人,并没有提供良好的用户体验。

我已经尝试过这个指南https://docs.microsoft.com/en-us/xamarin/xamarin-forms/platform/native-forms

我希望你们中的一些人可以帮助或告诉我这是一个坏主意。

【问题讨论】:

【参考方案1】:

首先,Xamarin 表单应用程序加载比 Xamarin.Android 应用程序加载慢。因为 Xamarin.Forms 不仅提供了跨目标共享 UI 的能力,还提供了常见的应用程序功能,例如用于深度链接的 AppLinks、Navigation、MessagingCenter 和 DependencyService,以及跨平台 UI 警报、操作表、工具栏所需的几个部分、状态栏等。

将Forms视图加载到原生项目时,流程如下:

    将 Xamarin.Forms NuGet 包添加到本机项目。 将 ContentPage 派生页面和任何依赖项添加到本机 项目。 调用 Forms.Init 方法。 构造 ContentPage 派生页面的实例并将其转换为适当的本机 使用以下扩展方法之一键入: 适用于 iOS 的 CreateViewController、适用于 Android 的 CreateSupportFragment 或 用于 UWP 的 CreateFrameworkElement。 导航到本机类型 使用本机的 ContentPage 派生页面的表示 导航 API。

它需要做的不仅仅是导航视图。您可以尝试加载本地内容并减少程序集的数量等。下面是博客中的几个小技巧,大家可以参考一下。 https://devblogs.microsoft.com/xamarin/5-ways-boost-xamarin-forms-app-sta

【讨论】:

感谢您的回复。我知道它不能像“普通”视图一样快,但我不明白 iOS 加载表单视图的速度比 android 快。 Xamarin.Android 只是 Android 原生库的一层封装,没有额外的操作。对于 ios,它们使用两个不同的系统。您可以向github.com/xamarin/Xamarin.Forms/issues 寻求帮助。

以上是关于带有 xamarin 表单的 xamarin 本机视图加载缓慢的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin表单 - 如何使用标题生成iOS ListView本机分组样式?

带有原生 Android 工具栏的 Xamarin 表单

显示带有 xamarin 表单的弹出窗口

在 Xamarin 表单中使用带有图像和文本的按钮

使用带有 Xamarin 表单的 Rg 插件弹出窗口

带有 Realm 3.4.0 的 .Net Standard 2.0“无法解析引用”Xamarin 表单