著论准过秦,作赋拟子虚。这篇文章主要讲述在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/
推荐阅读
- Android Check Internet Connection Android 8.0
- 如何限制用户输入EditText(Xamarin.Android)中小数点分隔符后的最大2位或3位数()
- 使用Android Deep Link的UPI支付网关
- “android.runtime.JavaProxyThrowable”是什么意思(我该如何解决?)
- 如何在C中打印Pascal三角形
- 如何在C中获得数字的阶乘
- 在Symfony 1.4中实现全局非静态辅助函数
- 如何解决FOSUserBundle异常(服务” fos_user.mailer”具有对不存在的服务”模板”的依赖)
- 如何在Silex项目中使用CLI清除缓存