Xamarin.Forms 快速呈现器

传统上,Android 上的大多数原始控件呈现器由两个视图组成:

  • 本机控件,如 ButtonTextView
  • 容器 ViewGroup,用于处理某些布局工作、手势处理和其他任务。

但是,此方法会对性能产生影响,因为会为每个逻辑控件创建两个视图,这会导致更复杂的可视化树,需要更多内存和更多处理才能在屏幕上呈现。

快速呈现器将 Xamarin.Forms 控件的膨胀和呈现成本降低至单个视图。 因此,只创建一个视图,而不是创建两个视图并将它们添加到视图树。 这通过创建更少的对象来提高性能,这反过来意味着视图树更简单和内存使用更少(这也导致垃圾收集暂停更少)。

快速呈现器适用于 Android 上的 Xamarin.Forms 中的以下控件:

从功能上讲,这些快速呈现器与旧版呈现器不同。 从 Xamarin.Forms 4.0 开始,所有以 FormsAppCompatActivity 为目标的应用程序将默认使用这些快速呈现器。 所有新控件(包括 ImageButtonCollectionView)的呈现器使用快速呈现器方法。

使用快速呈现器时的性能改进因每个应用程序而异,具体取决于布局的复杂性。 例如,当在包含数千行数据的 ListView 中滚动浏览时,x2 的性能改进是可能的,其中每一行中的单元格由使用快速呈现器的控件组成,这会使滚动明显更流畅。

注意

可使用与用于旧版呈现器的相同方法为快速呈现器创建自定义呈现器。 有关详细信息,请参阅自定义呈现器

后向兼容性

可使用以下方法替代快速呈现器:

  1. 通过在调用 Forms.Init 之前将以下代码行添加到 MainActivity 类来启用旧版呈现器:

    Forms.SetFlags("UseLegacyRenderers");
    
  2. 使用面向旧版呈现器的自定义呈现器。 任何现有的自定义呈现器将继续与旧版呈现器一起工作。

  3. 指定使用不同的呈现器的不同 View.Visual,例如 Material。 有关材料视觉对象的详细信息,请参阅 Xamarin.Forms 材料视觉对象