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

简介: 现代的用户界面是由各种视觉对象构成的。 根据操作系统的不同,这些可视对象可能会有不同的名称(控件,元素,视图,小部件),但它们都专注于演示或交互作用或两者兼而有之。在Xamarin.Forms中,屏幕上出现的对象统称为可视元素。
现代的用户界面是由各种视觉对象构成的。 根据操作系统的不同,这些可视对象可能会有不同的名称(控件,元素,视图,小部件),但它们都专注于演示或交互作用或两者兼而有之。
在Xamarin.Forms中,屏幕上出现的对象统称为可视元素。 它们分为三大类:
  • 页面
  • 布局
  • 视图
这些不是抽象的概念! Xamarin.Forms应用程序编程接口(API)定义了名为VisualElement,Page,Layout和View的类。 这些类和它们的后代形成Xamarin.Forms用户界面的主干。 VisualElement是Xamarin.Forms中一个非常重要的类。 VisualElement对象是任何占用屏幕空间的东西。
Xamarin.Forms应用程序由一个或多个页面组成。 一个页面通常占据屏幕的全部(或至少大面积)。 某些应用程序只包含一个页面,而其他应用程序允许在多个页面之间进行导航。 在本书的许多早期章节中,您只会看到一种类型的页面,称为ContentPage。
在每个页面上,视觉元素被组织在父子层次结构中。 一个“页面”的孩子通常是某种布局来组织视觉效果。 一些布局有一个孩子,但许多布局有多个孩子,布局自己排列。 这些孩子可以是其他布局或意见。 不同类型的布局将儿童安排在一个堆栈中,以二维网格或更自由的方式排列。 然而在本章中,我们的页面只包含一个孩子。
Xamarin.Forms中的术语“视图”表示熟悉的演示文稿类型和交互式对象:文本,位图,按钮,文本输入字段,滑块,开关,进度条,日期和时间选取器以及您自己设计的其他类型。 在其他编程环境中,这些通常被称为控件或小部件。本书将它们称为视图或元素。 在本章中,您将遇到用于显示文本的标签视图。
问好
使用Microsoft Visual Studio或Xamarin Studio,让我们使用标准模板创建一个新的Xamarin.Forms应用程序。 这个过程创建了一个包含多达六个项目的解决方案:用于iOS,Android,通用Windows平台(UWP),Windows 8.1和Windows Phone 8.1的五个平台项目,以及用于大部分应用程序代码的通用项目
在Visual Studio中,选择菜单选项File> New> Project。 在“新建项目”对话框的左侧,选择“Visual C#”,然后选择“跨平台”。 在对话框的中间部分,您将看到几个可用的解决方案模板,其中包括三个用于Xamarin.Form的解决方案
  • 空白应用程序(Xamarin.Forms便携式)
  • 空白应用程序(Xamarin.Forms共享)
  • 类库(Xamarin.Form
怎么办? 我们一定要创建一个空白的应用程序解决方案,但是什么样的?
Xamarin工作室提出了一个类似的困境,但以不同的方式。 要在Xamarin Studio中创建一个新的Xamarin.Forms解决方案,从菜单中选择File> New> Solution,在New Project对话框的左边,在Multiplatform下选择App,选择Forms App,然后按Next按钮。 向下一个屏幕的底部是一对标有共享代码的单选按钮。 这些按钮允许您选择以下选项之一:
  • 使用可移植类库
  • 使用共享库
在这种情况下,术语“便携式”是指便携式类库(PCL)。 所有常见的应用程序代码都成为所有单个平台项目引用的动态链接库(DLL)。
在这种情况下,术语“共享”是指包含在平台项目之间共享的松散代码文件(以及其他文件)的共享资产项目(SAP),基本上成为每个平台项目的一部分。
现在,请选择第一个:Visual Studio中的空白应用程序(Xamarin.Forms Portable)或Xamarin Studio中的使用可移植类库。 为该项目命名一个名称(例如,Hello),然后在该对话框(在Visual Studio中)或在Xamarin Studio中再次按Next按钮之后出现的对话框中选择一个磁盘位置。
如果运行Visual Studio,则会创建六个项目:一个通用项目(PCL项目)和五个应用程序项目。 对于名为Hello的解决方案,这些是:
  • 所有五个应用程序项目引用的名为Hello的可移植类库项目;
  • Android应用程序项目,名为Hello.Droid;
  • iOS应用程序项目,名为Hello.iOS;
  • 通用Windows平台的应用程序项目 Windows 10和Windows Mobile 10,名为Hello.UWP;
  • Windows 8.1的应用程序项目,名称为Hello.Windows;
  • Windows Phone 8.1的一个名为Hello.WinPhone的应用程序项目。
如果您在Mac上运行Xamarin Studio,则不会创建Windows和Windows Phone项目。
当您创建新的Xamarin.Forms解决方案时,Xamarin.Forms库(和各种支持库)将从NuGet包管理器自动下载。 Visual Studio和Xamarin Studio将这些库存储在解决方案目录中名为packages的目录中。 但是,下载的Xamarin.Forms库的特定版本是在解决方案模板中指定的,并且可能会提供更新的版本。
在Visual Studio中,在屏幕最右侧的解决方案资源管理器中,右键单击解决方案名称,然后选择管理NuGet软件包以获取解决方案。 出现的对话框包含左上角的可选项目,让您看到解决方案中安装了哪些NuGet软件包,并让您安装其他软件包。 您也可以选择更新项目来更新Xamarin.Forms库。
在Xamarin.Studio中,您可以在解决方案列表中选择解决方案名称右侧的工具图标,然后选择更新NuGet包。
在继续之前,请检查确定项目配置是否正常。 在Visual Studio中,选择“生成”>“配置管理器”菜单项。 在配置管理器对话框中,您将看到PCL项目和五个应用程序项目。 确保为所有项目选中了构建框,并为所有应用程序项目选中了“部署”框(除非该框呈灰色)。 请注意平台列:如果列出了Hello项目,则应将其标记为任何CPU。 Hello.Droid项目也应该标记为任何CPU。 (对于这两种类型的项目,任何CPU都是唯一的选择。)对于Hello.iOS项目,根据你将如何测试程序选择iPhone或iPhoneSimulator。
对于Hello.UWP项目,项目配置必须是x86才能部署到Windows桌面或屏幕模拟器,而ARM则需要部署到手机。
对于Hello.WinPhone项目,如果要使用屏幕模拟器,则可以选择x86;如果将ARM部署到真实电话,则选择ARM;或者使用任何CPU来部署。 无论您选择什么,Visual Studio都会生成相同的代码。
如果项目似乎没有在Visual Studio中编译或部署,请重新检查Configuration Manager对话框中的设置。 有时候不同的配置变得活跃,可能不包括PCL项目。
在Mac上的Xamarin Studio中,您可以通过Project> Active Configuration菜单项在部署到iPhone和iPhone模拟器之间进行切换。

在Visual Studio中,您可能需要显示iOS和Android工具栏。 这些工具栏允许您在仿真器和设备中进行选择,并允许您管理仿真器。 从主菜单中,确保视图>工具栏> iOS和视图>工具栏> Android项目被选中。
由于该解决方案包含两到六个项目中的任何一个,所以在选择运行或调试应用程序时,必须指定启动哪个程序。

目录
相关文章
|
7月前
|
存储 分布式计算 Java
深入探究JAVA编程语言:概念、应用与实例分析
**JAVA**是广泛应用的高级编程语言,以其易学性、跨平台能力和高效的性能著称。它采用面向对象编程,强调封装、继承和多态,且具备平台无关性、内置安全性和多线程支持。JAVA广泛应用于Web开发(如JSP、Servlet)、移动应用(Android开发)、大数据处理(Hadoop、Spark)和桌面应用。通过一个计算两数之和的简单示例,展示了JAVA的易读性和面向对象特性,帮助读者理解JAVA在实际开发中的运用。
|
运维 监控 架构师
第二章 软件过程与思想 第一节 基础
第二章 软件过程与思想 第一节 基础
|
7月前
|
存储 算法 C++
《C++ STL开发技术引导》 第五章-C++ STL泛化技术分析笔记
《C++ STL开发技术引导》 第五章-C++ STL泛化技术分析笔记
|
数据可视化 测试技术 uml
【UML建模】(1) UML建模的初了解,概述,组成,作用
UML (Unified Modeling Language)是一种通用的可视化的建模语言,可以用来描述、可视化、构造和文档化软件密集型系统的各种工件。它不是一种程序设计语言。 UML 是独立于过程的,它可以在软件生命周期的各个阶段运用,不过主要应用于软件开发的设计与分析阶段。
489 0
【UML建模】(1) UML建模的初了解,概述,组成,作用
|
程序员
软件基本功:垃圾代码的共同特征
软件基本功:垃圾代码的共同特征
110 0
|
监控 数据可视化 测试技术
软工导第一节课 计算机软件工程学作一个简短的概述,回顾计算机系统发展简史 软件工程的基本原理和方法有概括的本质的认识,详细讲解生命周期相关知识讲解8种典型的软件过程模型
软工导第一节课 计算机软件工程学作一个简短的概述,回顾计算机系统发展简史 软件工程的基本原理和方法有概括的本质的认识,详细讲解生命周期相关知识讲解8种典型的软件过程模型
291 0
软工导第一节课 计算机软件工程学作一个简短的概述,回顾计算机系统发展简史 软件工程的基本原理和方法有概括的本质的认识,详细讲解生命周期相关知识讲解8种典型的软件过程模型
|
机器学习/深度学习 数据采集 存储
不谈高级原理,只用简单的语言来聊聊机器学习
不谈高级原理,只用简单的语言来聊聊机器学习
357 0
不谈高级原理,只用简单的语言来聊聊机器学习
|
算法 安全 架构师
软件编程概念与入门
软件编程概念与入门 1.概要 2 项目开发流程 3.编程提升
|
Android开发 iOS开发 Windows