Xamarin Forms使用一个Activity来渲染所有页面。基本上,Page是Android子视图或片段。为什么不将每个页面都作为活动?这与Xamarin表单在iOS中的表现形成鲜明对比。在iOS上,Page是一个UIViewController。
我不是问Xamarin Forms在Android中是如何工作的(它使用片段)。
为什么Xamarin选择这样做?我相信有一些建筑选择?
答案 0 :(得分:0)
如果我错了,有人会纠正我,我认为Xamarin.Forms在Android上的片段向后移植之前就开始了,但是它的编写方式类似于使用视图的片段。
但是,如果您使用AppCompat
和FormsAppCompatActivity
作为MainActivity,我认为这已经改变了,现在使用原生Android Fragment
来保存表单页面。
我最好猜测为什么这样做是为了更好的内存管理,并确保任何不再使用的视图或对象都得到妥善处理。此外,至于为什么Activity
不能用于Page
,可能是因为它使创建导航变得更容易在Xamarin.Forms本身内完成,而不是本机。例如,使用TabbedPage
时,可能更容易将表单页面(即视图)添加到片段中供本机Android ActionBar
使用,而不是尝试使用表单页面(如果每个页面)是一项单独的活动。