第二章:解剖一个应用程序(2)

简介:

由于该解决方案包含两到六个项目中的任何一个,所以在选择运行或调试应用程序时,必须指定启动哪个程序。
在Visual Studio的解决方案资源管理器中,右键单击五个应用程序项目中的任意一个,然后从菜单中选择Set As StartUp Project项目。 然后,您可以选择部署到仿真器或实际设备。 要构建和运行程序,请选择菜单项Debug> Start Debugging。
在Xamarin Studio的解决方案列表中,单击出现在所选项目右侧的小工具图标,然后从菜单中选择设为启动项目。 然后你可以从主要的人中选择Run> Start Debugging。
如果一切顺利,模板创建的骨架应用程序将运行,您将看到一条短消息:
2018_01_17_215621

正如你所看到的,这些平台有不同的配色方案。 iOS和Windows 10 Mobile屏幕在浅色背景上显示深色文字,而Android设备在黑色背景上显示浅色文字。 默认情况下,Windows 8.1和Windows Phone 8.1平台就像Android一样在黑色背景上显示浅色文字。
默认情况下,所有平台都已启用方向更改。 翻转手机,你会看到文字调整到新的中心。
该应用程序不仅在设备或模拟器上运行,而且还可以部署。 它与手机或模拟器上的其他应用程序一起出现,并可以从那里运行。 如果您不喜欢应用程序图标或应用程序名称显示方式,则可以在各个平台项目中进行更改。
显然,由Xamarin.Forms模板创建的程序非常简单,所以这是一个很好的机会来检查生成的代码文件,并找出它们之间的相互关系以及它们是如何工作的。
让我们从负责绘制您在屏幕上看到的文本的代码开始。 这是Hello项目中的App类。 在由Visual Studio创建的项目中,App类是在App.cs文件中定义的,但在Xamarin Studio中,该文件是Hello.cs。 如果项目模板自本章编写以来没有太多变化,可能看起来像这样:
2018_01_17_215942
2018_01_17_215958

请注意,名称空间与项目名称相同。这个App类被定义为public,并从Xamarin.Forms应用程序类派生。构造函数真的只有一个责任:将Application类的MainPage属性设置为Page类型的对象。
Xamarin.Forms模板在这里生成的代码显示了一个非常简单的方法来定义此构造函数:ContentPage类派生自Page,在单页Xamarin.Forms应用程序中非常常见。 (在本书中你会看到许多ContentPage)。除了Android屏幕顶部的状态栏,Android屏幕底部的按钮和状态栏外,它占据了手机屏幕的大部分在Windows Phone屏幕的顶部。 (如你所见,iOS状态栏实际上是单页应用程序中ContentPage的一部分。)
ContentPage类定义了一个名为Content的属性,您可以将其设置为页面的内容。一般来说,这个内容是一个布局,而这个布局又包含了一堆视图,在这种情况下,它被设置为一个StackLayout,这个StackLayout把它的孩子排列在一个堆栈中。
这个StackLayout只有一个孩子,这是一个标签。 Label类派生自View,用于Xamarin.Forms应用程序显示一段文本。本章后面将更详细地讨论VerticalOptions和HorizontalTextAlignment属性。
对于您自己的单页Xamarin.Forms应用程序,您通常会定义从ContentPage派生的自己的类。 App类的构造函数然后将您定义的类的实例设置为其MainPage属性。 你会看到这是如何工作很快。
在Hello解决方案中,您还将看到一个用于创建PCL的AssemblyInfo.cs文件和一个包含程序所需的NuGet包的packages.config文件。 在“解决方案”列表中的“Hello”下面的“参考”部分中,至少会看到PCL需要的四个库。

.NET (displayed as .NET Portable Subset in Xamarin Studio)
Xamarin.Forms.Core
Xamarin.Forms.Xaml
Xamarin.Forms.Platfo

正如你正在编写一个Xamarin.Forms应用程序,这个PCL项目将会收到你的大部分注意力。 在某些情况下,这个项目中的代码可能需要针对各种平台进行一些裁剪,而且您很快会看到如何去做。 您还可以在五个应用程序项目中包含特定于平台的代码。
五个应用程序项目都有自己的图标和元数据形式的资产,如果您打算将应用程序推向市场,您必须特别注意这些资产。 但在您学习如何使用Xamarin.Forms开发应用程序的时候,通常可以忽略这些资产。 您可能会想要将这些应用程序项目折叠到解决方案列表中,因为您不需要对其内容进行太多打扰。
但是你真的应该知道这些应用程序项目是什么,所以让我们仔细看看。
在每个应用程序项目的References部分中,您将看到对常见PCL项目(本例中为Hello)的引用,以及各种.NET程序集,上面列出的Xamarin.Forms集合以及适用于其他Xamarin.Forms集合 每个平台。

Xamarin.Forms.Platform.Android
Xamarin.Forms.Platform.iOS
Xamarin.Forms.Platform.UAP (not explicitly displayed in the UWP project)
Xamarin.Forms.Platform.WinRT
Xamarin.Forms.Platform.WinRT.Tablet
Xamarin.Forms.Platform.WinRT.Phone

这些库中的每一个都在Xamarin.Forms命名空间中定义了一个静态Forms.Init方法,该方法初始化该特定平台的Xamarin.Forms系统。 每个平台的启动代码都必须调用这个方法。
您也刚刚看到PCL项目派生出一个名为App的公共类,它来自Application。 每个平台的启动代码也必须实例化这个App类。
如果您熟悉iOS,Android或Windows Phone开发,您可能会好奇地看到平台启动代码如何处理这些作业。

目录
相关文章
|
7月前
|
存储 分布式计算 Java
深入探究JAVA编程语言:概念、应用与实例分析
**JAVA**是广泛应用的高级编程语言,以其易学性、跨平台能力和高效的性能著称。它采用面向对象编程,强调封装、继承和多态,且具备平台无关性、内置安全性和多线程支持。JAVA广泛应用于Web开发(如JSP、Servlet)、移动应用(Android开发)、大数据处理(Hadoop、Spark)和桌面应用。通过一个计算两数之和的简单示例,展示了JAVA的易读性和面向对象特性,帮助读者理解JAVA在实际开发中的运用。
|
监控 数据可视化 测试技术
软工导第一节课 计算机软件工程学作一个简短的概述,回顾计算机系统发展简史 软件工程的基本原理和方法有概括的本质的认识,详细讲解生命周期相关知识讲解8种典型的软件过程模型
软工导第一节课 计算机软件工程学作一个简短的概述,回顾计算机系统发展简史 软件工程的基本原理和方法有概括的本质的认识,详细讲解生命周期相关知识讲解8种典型的软件过程模型
291 0
软工导第一节课 计算机软件工程学作一个简短的概述,回顾计算机系统发展简史 软件工程的基本原理和方法有概括的本质的认识,详细讲解生命周期相关知识讲解8种典型的软件过程模型
|
测试技术 数据库
怎样成为优秀软件模型设计者
导读:文章转自博客园,作者heartstill写了一篇《怎样成为优秀软件模型设计者》,文中阐述了不同观点,见解独特,构思新颖。以下是文章内容: 我们期待自己成为一个优秀的软件模型设计者,但是,要怎样做,又从哪里开始呢?将下列原则应用到你的软件工程中,你会获得立杆见影的成果。
935 0
|
Android开发 iOS开发 Windows
|
Android开发 iOS开发 Windows
|
Android开发 iOS开发 Windows
|
Android开发 iOS开发 Windows
第二章:解剖一个应用程序(1)
现代的用户界面是由各种视觉对象构成的。 根据操作系统的不同,这些可视对象可能会有不同的名称(控件,元素,视图,小部件),但它们都专注于演示或交互作用或两者兼而有之。在Xamarin.Forms中,屏幕上出现的对象统称为可视元素。
1386 0

热门文章

最新文章