【问题标题】:do we have to initialize Xamarin.Forms in MvvmCross in Android?我们必须在 Android 的 MvvmCross 中初始化 Xamarin.Forms 吗?
【发布时间】:2023-03-24 08:29:01
【问题描述】:

我在MvvmCross 中有一个简单的示例。在那,我已经安装了Xamarin.Forms version 3.4MvvmCross version 6.6.

我的疑问是:

  1. 初始化这段代码的目的是什么global::Xamarin.Forms.Forms.Init(this, bundle) in android Renderer ?
  2. 我们是否必须在 android 渲染器中初始化 MvvmCross 6.6 版中的 Xamarin.Forms?

【问题讨论】:

    标签: c# xamarin.forms mvvmcross


    【解决方案1】:

    在android渲染器中初始化这段代码global::Xamarin.Forms.Forms.Init(this, bundle)的目的是什么?

    如果您检查Xamarin.Forms official quote on this,它会是这样的:

    OnCreate 重写通过调用 Init 方法来初始化 Xamarin.Forms 框架。这会导致在加载Xamarin.Forms 应用程序之前将Xamarin.Forms 的Android 特定实现加载到应用程序中。此外,MainActivity 类在 Instance 属性中存储对自身的引用。 Instance 属性称为本地 context,并从 PhoneDialer 类中引用。

    引用是不言自明的,但只是为了帮助您一点,它基本上用于加载 Xamarin.Forms 框架在运行时需要的 Android 特定实现。

    我们必须在 android 渲染器中初始化 MvvmCross 6.6 版中的 Xamarin.Forms 吗?

    不,您不需要在 MvvmCross 中初始化它,因为 MvvmCross 在后台为您完成它。有关如何为 Xamarin.Forms 设置 MvvmCross 的更多信息,请查看this

    【讨论】:

    • 那么我会将一些 nuget 包所需的 Inits 放在哪里?他们有时要求在 Xamarin.Forms 的 init 之前调用它。
    • 嗯,他们通常会这么说,因为有些人直接在 App 类的构造函数上使用插件,这会导致他们的库出现问题,因为它没有初始化而是直接使用。因此,他们要求您在调用 XF init 之前对其进行初始化,以便他们的库准备就绪@AmirHajiha 并非每个使用 XF 的人通常都了解 XF/C# 的内部工作,所以他们这样做是为了避免给新用户造成混淆。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-13
    • 2017-03-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多