Xamarin.Forms (跨平台)14 Nov 2024 | 阅读 14 分钟 Xamarin.Forms (跨平台) 的先决条件
引言Xamarin.Forms 是 Xamarin 的一项功能。Xamarin 是一个流行的移动开发框架,它通过用于构建移动应用程序的工具和库扩展了 .Net 开发平台。Xamarin.Forms 是一个开源的跨平台框架,被微软收购,用于通过 .NET 从单个共享代码库构建 Android、iOS 和 Windows 应用程序。我们使用 Xamarin.Forms 内置的页面、布局和控件来构建和设计移动应用程序,这些应用程序具有一个高度可扩展的单一 API。通过继承任何控件来定制行为,或定义我们自己的控件、布局、页面和单元格,以使我们的应用程序像素完美。 ![]() Xamarin Form 结构一开始,当我们打开任何设备、任何手机时,我们在屏幕上看到的可视区域就叫做 **页面 (Page)**。屏幕上的所有可视区域都被我们视为一个页面,我们可以将其类比为 ROM。然后,我们如何在页面上组织事物,以及我们如何规划事物,就叫做 **布局 (Layout)**。**视图 (View)** 是我们实际放置在位置上的实际项,要么我们将它们堆叠起来,要么将它们放在左边、右边等。 视觉元素 (Visual Elements)在 Xamarin 中,显示在设备屏幕上的元素称为视觉元素。在像手机这样的设备中,那些可见的,或者我们可以看到的,就称为视觉元素。 Xamarin 中有 4 种视觉元素。 ![]() 页 在设备中,从导航栏到屏幕底部被称为 **页面 (a page)**。 ![]()
布局 页面中的子元素称为 **布局 (Layout)** ![]()
包含许多元素的布局称为 **视图 (Views)**。 ![]() 细胞 视图的子元素称为 **单元格 (Cell)**。 ![]()
页 页面用于设计应用程序的屏幕。Xamarin 中有多种类型的“页面”。页面是一种父对象,它进一步包含子对象,子对象可以是另一个页面或布局。页面占据整个屏幕。
Xamarin 中有六种类型的页面。
![]() Content Page (内容页面) 内容页面在整个可见屏幕上显示一个视图或一个容器。 在这里,我们将使用 Visual Studio 2017 中的 **Xamarin.Forms** 来研究 **内容页面** 的结构。 要在 Visual Studio 中创建页面,我们将按照以下步骤进行。 页![]() 创建内容页面的过程 点击 文件 -> 新建 -> 项目 ![]() 点击 Visual C# -> 选择 Cross-Platform -> 选择 Mobile App (Xamarin.Forms) ![]() 输入应用程序名称 -> 点击 确定 ![]() 选择 Blank 模板创建 Xamarin 应用程序 -> 选择 Platform -> 选择 Code Sharing Strategy -> 点击 OK。 ![]() 打开 Solution Explorer -> 点击 MainPage.Xaml -> 构建应用程序 -> 测试应用程序,点击 Android Emulator ![]() 输出 性质 在这里,我们将使用一些属性来增强页面的功能。 Margin (外边距): Margin 属性表示元素与其相邻元素之间的距离。 Padding (内边距): Padding 表示元素与其子元素之间的距离,它用于将控件与其自身内容分隔开。 MainPage.XAMLMainPage.XAML.CS输出 ![]() Xamarin.Forms 主从页面Xamarin.Forms MasterDetailPage 是一个页面,它管理两个相关页面之间的信息,主页面显示项目,详细页面显示主页面上项目的详细信息。 在这里,我们将解释如何使用 MasterDetailPage 以及页面之间的导航。
项目列表的位置在每个平台上都是相同的,在选择项目后会导航到相应的详细页面。主页面还有一个导航功能,即导航栏,其中包含一个按钮,可用于导航到活动的详细页面。
MainPage.XamlMainPage.Xaml.CS输出 ![]() 在这里,我们将在主页面添加更多内容,以及更多页面以通过按钮进行导航 添加新页面 (Page1.Xaml)右键单击 ProjectName -> 添加 -> Content Page -> 添加页面名称 (Page1)。 添加 Page2.XamlMainPage.XamlMainPage.Xaml.CS输出 ![]() 当我们点击菜单项 1 时,我们将导航到 Page1,当我们点击菜单项 2 时,我们将导航到 Page2。 输出 ![]() 我们将学到什么
为所有操作系统开发应用程序的巨大问题在于它们是不同的。 Xamarin 承诺提供带有共享代码库的移动应用程序;然而,该共享代码基于应用程序逻辑。传统的 Xamarin.iOS、**Xamarin.Android** 和 **Xamarin.UWP** 开发仍然要求用户界面可以相互独立编写,这并非易事。 Xamarin.Forms 基础知识Xamarin.Form 是一个用于构建用户界面的移动应用程序框架。Xamarin.Form 是一个跨平台 UI 工具包,允许开发人员轻松创建可在 Android、iOS 和 Windows Phone 之间共享的原生用户界面布局。 Xamarin.Forms 提供 100% 的原生 iOS、Android 和 UWP 应用,事实上,任何 Xamarin.Forms 应用的起点都是项目的平台。 Xamarin.Form 不仅仅是控件Xamarin.Forms 提供 20 多个跨平台用户界面控件;这些控件中的每一个都有 Xamarin.Forms 特有的 API,但会作为其原生 iOS、Android 或 UWP 对应项发出。换句话说,Xamarin.Forms Label 控件将作为 iOS UI Label 发出。 一些 Xamarin.Forms 内置控件,在 iOS 和 Android 上是原生渲染的。 Xamarin.Forms 不止于此
共享项目和 PCL (Portable Class Library) 之间的区别这里有两种共享项目的方式。这两种方式都允许我们在 Android、iOS 和 Windows 等不同平台之间共享项目。 共享项目和 PCL (Portable Class Library) 之间的区别是
Navigation Page (导航页面)导航页面管理页面之间的导航。它使用基于堆栈的架构,并包含 PUSH 和 POP 属性来导航页面。我们可以向任何类型的页面添加导航以导航到另一个页面。 登录表单 编码 MainPage.Xaml MainPage.Xaml.CSApp.XamlHomePage.XamlHomePage.Xaml.cs输出 ![]() 在这里,我们将信息填入文本框 用户名、密码,然后点击登录 ![]() 填完信息后,该页面将切换到导航页面。 Navigation Page (导航页面)![]() 点击此高亮箭头后,我们将切换回 **登录页面**。 ![]() Pickers (选择器)Xamarin Forms 中有三种类型的选择器。 1. Date Picker (日期选择器) Xamarin.Form 视图允许用户选择日期。Xamarin.Forms **DatePicker** 调用平台的日期选择器控件,允许用户选择日期。DatePicker 定义了八个属性。
MainPage.XAML 输出 ![]() ![]() 2. Time Picker (时间选择器)3. Xamarin.Forms 视图允许用户选择时间。Xamarin.Forms **TimePicker** 调用平台的时钟选择器控件,并允许用户选择时间。 MainPage.XAML MainPage.XAML.CS 输出 ![]() 4. Picker (称为下拉列表) MainPage.XAML.CS 输出 ![]() Tabbed Page (标签页)标签页包含多个页面或标签,允许它们之间的导航。它表现得像一个父级,所有其他都是它的子级。以下是不同设备上不同类型标签页的示例。在 iOS 中,我们可以在底部看到标签,而在 Android 和 Windows Phone 中,标签位于顶部。 ![]() 方法 1MainPage.XAML MainPage.Xaml.CS 输出 ![]() 方法 2图标插入 MainPage.XAML MainPage.Xaml.CS Page1.XamlPage2.XamlAPP.Xaml编码如何添加图标从 ICONFINDER 网站下载图标,点击以下链接:https://www.iconfinder.com/search/?q=message&from=homepage,从下载文件夹中复制并粘贴到 drawable 文件夹的 resources 中。 Page1为所有页面添加图标的过程将重复。 输出 ![]() Carousel Page (轮播页面)一种 **PAGE**,用户可以左右滑动以浏览内容页面,类似于画廊。它包含页面列表和显示区域。
轮播页面通过左右滑动提供页面导航。它充当其他子页面的基页。 轮播页面一次只能看到一个。 Carousel Page: Default Behaviour (轮播页面:默认行为)![]() ![]() Carousel Page Look (轮播页面外观)![]() 页面列表的加载
MainCarouselPage.Xaml App.Xaml输出 ![]() Template Page (模板页面)它是内容页面的基类,并显示具有受控模板的全屏内容。在此,我们可以设计整个应用程序的模板,包括字体大小、颜色和许多其他样式技术。 Page1.Xaml未使用模板输出 ![]() 使用模板Page2.Xaml在 App.Xaml 中,我们可以通过这种方式来创建模板。 App.XamlApp.Xaml.CS输出 ![]() 总结Xamarin.Forms 是 Xamarin 最强大的功能之一,它有助于创建跨平台应用程序。借助它,我们可以触及数十亿台智能设备。毫无疑问,Xamarin 因其无缝的 API 集成能力已成为企业的“选择”。 |
我们请求您订阅我们的新闻通讯以获取最新更新。