在Xamarin Forms Project中的OnAppearing方法中调用InitializeComponent

著论准过秦,作赋拟子虚。这篇文章主要讲述在Xamarin Forms Project中的OnAppearing方法中调用InitializeComponent相关的知识,希望能为你提供帮助。
是否有任何原因或问题我无法在xamarin表单项目中的页面的OnAppearing函数中调用InitializeComponent方法?我知道我必须只调用一次InitializeComponent来创建实际的页面。但是,如果我检查内容已经创建并按以下方式执行,该怎么办?这是一个糟糕的实施或实践?因为据说基于xaml的应用程序没有这样做,并且总是在页面的构造函数中调用它。
我想这样做的原因如下所示,因为xamarin.forms启动时间在android上运行缓慢,如果你使用Masterdetail页面(我认为相同的选项卡页面),你必须在启动时初始化它,它会导致每个导航页面定义在masterdetail页面中进行初始化,根据你的用户界面需要2-3秒才能获得更高的成本。对此有何想法或经验?

protected override void OnAppearing() { if (Content == null) { InitializeComponent(); } }

答案我不推荐这种方法。来自xamarin文档。
该类的构造函数调用InitializeComponent,然后调用LoadFromXaml方法从PCL中提取XAML文件(或其编译的二进制文件)。 LoadFromXaml初始化XAML文件中定义的所有对象,在父子关系中将它们全部连接在一起,将代码中定义的事件处理程序附加到XAML文件中设置的事件,并将生成的对象树设置为页面的内容。
https://developer.xamarin.com/guides/xamarin-forms/xaml/xaml-basics/getting_started_with_xaml/
如果您的表单在Android上太慢,我会启用快速渲染
在主要活动的OnCreate中,在Xamarin.Forms.Init之前添加这行代码
Forms.SetFlags("FastRenderers_Experimental");

https://xamarinhelp.com/xamarin-forms-fastrenderers-android/
尝试使用已编译的Xaml也没有什么坏处
using Xamarin.Forms.Xaml; ... [XamlCompilation (XamlCompilationOptions.Compile)] public class HomePage : ContentPage {

【在Xamarin Forms Project中的OnAppearing方法中调用InitializeComponent】https://developer.xamarin.com/guides/xamarin-forms/xaml/xamlc/

    推荐阅读