用户首次打开您的应用程序,您有机会帮助他熟悉它,如何?您可以向他展示一系列屏幕,以解释该应用程序的功能,简而言之,这些屏幕就可以开始使用了。
在本教程中,我们将学习如何使用Xamarin.Forms创建入职UI。
注意:
本教程假定您熟悉Xamarin.Forms和Model-View-Model模式。
入门
在本教程中,我们将为名为Tabia的应用程序创建一个入门UI ,Tabia可以帮助他的用户养成持久的习惯。
设置项目
打开Visual Studio并创建一个空白的新Xamarin.Forms项目,构建并运行该项目,您应该具有以下屏幕:
![11d4f088b83776ef566e09ad7fa32e94.png](https://i-blog.csdnimg.cn/blog_migrate/3694ea4514099aa2ab6ddb117fc58cea.jpeg)
检测应用程序是否首次启动
入职屏幕显示只有在应用程序启动的第一次,Xamarin.Essentials配备了一个叫做类VersionTracking 与,可以帮助。确保选中Xamarin.Essentials 软件包安装在您的NuGet包。
![8bd81ccff723882dd9d85bbfb8155c4f.png](https://i-blog.csdnimg.cn/blog_migrate/9b788cccf92edb23fe9984409653c0d8.jpeg)
注意:
在编写本教程时,Xamarin.Essentials已随默认模板解决方案一起安装。
打开App.xaml.cs,重写OnStart方法并添加以下代码行。
![d2aa802f5f9f9ff4ead132b74b0cb9d0.png](https://i-blog.csdnimg.cn/blog_migrate/83f7c2c248c948ba482bddde59c805a5.jpeg)
打开MainPage.xaml.cs并在构造函数中添加以下代码行。
![5864bfcf9365d6744e76f32d2b6bc8ba.png](https://i-blog.csdnimg.cn/blog_migrate/fde505f8d73986dab0cdfcfcdd22fda8.jpeg)
现在,我们知道首次启动该应用程序时,我们将添加代码以便稍后启动。
创建入职用户界面
需要两个NuGet软件包:
让我们安装两个软件包。
![36234b02927ad9eee2b2ecf1afc0364b.png](https://i-blog.csdnimg.cn/blog_migrate/d654ae9362ff5656d158d9b9848b61ef.jpeg)
![819b46e7a3585b0c586609cc9b04e400.png](https://i-blog.csdnimg.cn/blog_migrate/5c4a268775bc5b67fa7ad8f6a4041845.jpeg)
FFImageLoading需要在每个平台特定的项目(AppDelegate.cs,MainActivity.cs)中初始化。
在iOS上:
![ae2d337be5efee0379e163da064ff6a2.png](https://i-blog.csdnimg.cn/blog_migrate/0b9b4f8ae679086a9b21188e22051864.jpeg)
在Android上:
![45611f72999202d85c8c9022dd7e10c7.png](https://i-blog.csdnimg.cn/blog_migrate/88d72fd1643478315dce5a30b6aa014e.jpeg)
将使用Model-View-ViewModel模式创建UI,让我们首先创建模型。
创建一个名为Feature的文件夹,并添加一个名为OnboardingModel的新类。用以下行替换现有代码:
![91f5de1b3338877103a1a47854a1c75b.png](https://i-blog.csdnimg.cn/blog_migrate/07231009d69ea03d0c64c4a6feba7733.jpeg)
在同一文件夹中,添加一个名为OnboardingViewModel的新类,并添加以下代码行:
![ad186d63d1a7fb8259f0c0a625e90dfd.png](https://i-blog.csdnimg.cn/blog_migrate/1028e8c0e8ab80a0047ab2716a07f9d6.jpeg)
![e8b006034b287782043bfe9a3ad7dd86.png](https://i-blog.csdnimg.cn/blog_migrate/96eb1bff2e4ebf1030a93fabc3d7b7a8.jpeg)
![1ee99706383604729160f14f5230ce2e.png](https://i-blog.csdnimg.cn/blog_migrate/e6ab898c899b3504a8ebd2e6f5af1956.jpeg)
注意事项:
类型 ObservableCollection 的属性Items将绑定到转盘视图。使用属性ImageUrl可以指定图像的位置。
在iOS上,图像存储在文件夹Resource中。
![c470461929373f7ab2acc699784ec6bb.png](https://i-blog.csdnimg.cn/blog_migrate/0c45cf7fcae63bca0e4b4fc2d0d611e3.jpeg)
在Android上,图像存储在文件夹Resource-> Drawable中。
![f702131500b6084e88a56dea87b0fb2b.png](https://i-blog.csdnimg.cn/blog_migrate/fa0ae567af6e9f09c783acbf4043cf1c.jpeg)
添加一个名为OnboardingPage的新内容页面并打开OnboardingPage.xaml,删除所有代码并替换为以下内容:
![2fca83b9fb4102f22dfe2c2757d09237.png](https://i-blog.csdnimg.cn/blog_migrate/3f005165206aba0436b50bb7c8cc5682.jpeg)
![21e6f8bda193ed82a77270fd9fabfb08.png](https://i-blog.csdnimg.cn/blog_migrate/19b03ad1365b43f39c2b43e8f7697cd1.jpeg)
![582e327926d8fb531e44b6bc9675b332.png](https://i-blog.csdnimg.cn/blog_migrate/c15dcc56652fe36aa675a8e43e553065.jpeg)
注意事项:
在编写本教程时,IndicatorView仍处于试验阶段,您应在特定于平台的项目(AppDelegate.cs,MainActivity.cs)中添加以下行:
Xamarin.Forms.Forms.SetFlags(new string[] { "IndicatorView_Experimental" });
此时,共享项目应如下所示:
![046909c8adf480a05a5d86c5b56f3149.png](https://i-blog.csdnimg.cn/blog_migrate/dfce43fdaca7475790505407ea8a1b71.jpeg)
显示入职
打开MainPage.xaml.cs,用以下代码替换该TODO注释:
Navigation.PushModalAsync(new OnboardingPage()
![b562ab6a1a0c99be4ca938e4d083ecad.gif](https://i-blog.csdnimg.cn/blog_migrate/78243de11d17a6e3a7574565878ce563.gif)
生成并运行项目,您应该看到以下结果:
注意事项:
如果您想再次显示入职信息,我们需要从您的设备或模拟器中卸载该应用程序。