为什么Xamarin Forms对所有页面使用一个Activity

时间:2018-03-01 06:07:36

标签: xamarin.forms xamarin.android

Xamarin Forms使用一个Activity来渲染所有页面。基本上,Page是Android子视图或片段。为什么不将每个页面都作为活动?这与Xamarin表单在iOS中的表现形成鲜明对比。在iOS上,Page是一个UIViewController。

我不是问Xamarin Forms在Android中是如何工作的(它使用片段)。

为什么Xamarin选择这样做?我相信有一些建筑选择?

1 个答案:

答案 0 :(得分:0)

如果我错了,有人会纠正我,我认为Xamarin.Forms在Android上的片段向后移植之前就开始了,但是它的编写方式类似于使用视图的片段。

但是,如果您使用AppCompatFormsAppCompatActivity作为MainActivity,我认为这已经改变了,现在使用原生Android Fragment来保存表单页面。

我最好猜测为什么这样做是为了更好的内存管理,并确保任何不再使用的视图或对象都得到妥善处理。此外,至于为什么Activity不能用于Page,可能是因为它使创建导航变得更容易在Xamarin.Forms本身内完成,而不是本机。例如,使用TabbedPage时,可能更容易将表单页面(即视图)添加到片段中供本机Android ActionBar使用,而不是尝试使用表单页面(如果每个页面)是一项单独的活动。