Xamarin移动开发实战笔记

/ 0评 / 0赞 / 

本笔记所使用的教程:2022开源!Xamarin+MAUI移动开发实战教程:社区电商APP项目开发(C#/.NET/WPF零基础入门到精通实战合集/.Net maui)

这老师这嘴跟租来的似的,口齿不清吞吞吐吐。

直接或间接使用的其他笔记:

移动开发初识

开发环境

安装VS的时候会有默认的限制,安装2022就是MAUI模板,安装2019就是Xamarin模板(完全没听懂,总之两个都安装了

Visual Studio 2019:

image-20230215231847217

Visual Studio 2022:

image-20230215231803864

Xamarin与MAUI

接下来就只记Xamarin了

项目创建及结构说明

若项目名称尾是Xamarin,则创建后提示报错:

image-20230215233703004

是因为项目名内含有的Xamarin影响了Xamarin.Essentials这个程序集的引用,导致程序去项目的命名空间下去找.Essentials,因此有两种解决方法

真机测试

本人使用Xiaomi Play 安卓8.1,在找了很久很久之后才发现没打开USB安装,而且这玩意还得插卡和登陆账号才能打开我是不是SB我不知道,小米反正是SB。

img

资源管理

image-20230225165133573

fonts.AddFont("字体.ttf", "设定字体名字");

调用的时候直接调用设定的字体名即可

这里可以显示所有文件
image-20230225165247576

关键对象概念-权限

打开项目——属性——清单,最下方是所需权限

image-20230219170008877

不过在开发过程中一般用代码进行管理,不需要在属性设置中选择

image-20230219180203738

进行IOS的开发的时候,需要打开这个文件image-20230225170055951,但不能直接双击,右键选择打开方式选择XML(文本)编辑器。

Xamarin初级开发

Shell空间

Shell空间就像一个容器,里面放了一个个的页面,根据不同的情况显示不同的页面。切换页面是基于路由的:首先在Shell里注册好每一个页面,然后根据特定路由来请求每个页面的显示。不同于Windows的多窗口,安卓单窗口的页面切换就是Shell的呈现。

在我们创建的空项目中没有Shell的体现,需要添加Shell对象来进行业务开发。使用Shell相当于把多个页面作为一个整体来管理,如果不借助Shell将会有不合逻辑的跳转。

在Xamarin下需要自行创建AppShell:

把内容页改为Shell

image-20230225173104910

内置代码也改为Shell类型

image-20230225173041587

与MAUI类似的,进行Shell注册:

想要注册MainPage页面,需要在AppShell导入MainPage的命名空间

image-20230225174009169

打开MainPage.xaml.cs,可以看到其命名空间为Mobile.Xamarin。返回AppShell.xaml,在上方导入命名空间,xmlns后面为导入的命名空间的在当前文件下的命名,例中为local:

image-20230225174220291

将会自动补全为xmlns:local="clr-namespace:Mobile.Xamarin"

导入命名空间后,即可进行该页面的注册:

页面跳转

进行Shell跳转为加载路由地址Shell.Current.GoToAsync("//Login")。引号内使用的是路径,一定要加//。这种跳转方法是类似于调换页面,而不是新加一张页面到上层,所以返回动作后不会回到跳转之前的页面。

我找到的另一种跳转是:Navigation.PushAsync (new MainPage ()); 这种跳转与上述相反,在页面1以当前方法跳转到页面2后,执行返回后会回到页面1。

只有注册了所有的页面,才可以在业务中使用Shell进行跳转。

Xamarin如果想添加await await Shell.Current.GoToAsync("//Login"),需要添加异步处理async

页面布局

所有的页面布局都基于标签式的结构来进行处理的

每个标签都是一个对象,从外到内看:

两个基本布局方式为:<StackLayout><Grid>

这是Grid的使用方法:

此文本框属性解释:

发表回复

您的电子邮箱地址不会被公开。