Xamarin.Forms多画面快速入门

简介: 该快速入门演示了如何通过添加第二个屏幕来扩展Phoneword应用程序来跟踪应用程序的通话记录。 最终的应用如下所示: 扩展Phoneword应用程序如下: 在“开始”屏幕中,启动Visual Studio。

该快速入门演示了如何通过添加第二个屏幕来扩展Phoneword应用程序来跟踪应用程序的通话记录。 最终的应用如下所示:

扩展Phoneword应用程序如下:

  1. 在“开始”屏幕中,启动Visual Studio。 这将打开起始页:

  2. 在Visual Studio中,单击打开项目...,并在打开项目对话框中选择Phoneword项目的解决方案文件。 或者从最近的项目列表中打开该项目:

  3. 在解决方案资源管理器中,右键单击Phoneword项目,然后选择添加>新建项...:

  4. 在Add New Item对话框中,选择Visual C#> Cross-Platform> Forms Xaml Page,命名新的文件CallHistoryPage,然后单击Add按钮。 这将为项目添加一个名为CallHistoryPage的页面:

  5. 在CallHistoryPage.xaml中,删除所有的模板代码,并将其替换为以下代码。 该代码声明性地定义了页面的用户界面:

    点击(此处)折叠或打开

    1. ?xml version="1.0" encoding="UTF-8"?>
    2. ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
    3.                    xmlns:local="clr-namespace:Phoneword;assembly=Phoneword"
    4.                    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    5.                    x:Class="Phoneword.CallHistoryPage"
    6.                    Title="Call History">
    7.     ContentPage.Padding>
    8.         OnPlatform x:TypeArguments="Thickness">
    9.             On Platform="iOS" Value="20, 40, 20, 20" />
    10.             On Platform="Android, WinPhone, Windows" Value="20" />
    11.         /OnPlatform>
    12.     /ContentPage.Padding>
    13.     StackLayout>
    14.       ListView ItemsSource="{x:Static local:App.PhoneNumbers}" />
    15.     /StackLayout>
    16. /ContentPage>


    按CTRL+S将更改保存到CallHistoryPage.xaml,然后关闭文件。

  6. 在解决方案资源管理器中,双击App.xaml.cs以打开它:

  7. 在App.xaml.cs中,导入System.Collections.Generic命名空间,添加PhoneNumbers属性的声明,初始化App构造函数中的属性,并将MainPage属性初始化为NavigationPage。 PhoneNumbers系列将用于存储应用程序调用的每个翻译的电话号码列表:

    点击(此处)折叠或打开

    1. using System.Collections.Generic;
    2. using Xamarin.Forms;
    3. using Xamarin.Forms.Xaml;

    4. [assembly: XamlCompilation(XamlCompilationOptions.Compile)]
    5. namespace Phoneword
    6. {
    7.     public partial class App : Application
    8.     {
    9.         public static IListstring> PhoneNumbers { get; set; }

    10.         public App()
    11.         {
    12.             InitializeComponent();
    13.             PhoneNumbers = new Liststring>();
    14.             MainPage = new NavigationPage(new MainPage());
    15.         }
    16.         ...
    17.     }
    18. }


    通过按CTRL+S将更改保存到App.xaml.cs,并关闭文件。

  8. 在解决方案资源管理器中,双击MainPage.xaml打开它:

  9. 在MainPage.xaml中,在StackLayout控件的末尾添加一个Button控件。 该按钮将用于导航到通话记录页面:

    点击(此处)折叠或打开

    1. StackLayout VerticalOptions="FillAndExpand"
    2.              HorizontalOptions="FillAndExpand"
    3.              Orientation="Vertical"
    4.              Spacing="15">
    5.   ...
    6.   Button x:Name="callButton" Text="Call" IsEnabled="false" Clicked="OnCall" />
    7.   Button x:Name="callHistoryButton" Text="Call History" IsEnabled="false"
    8.           Clicked="OnCallHistory" />
    9. /StackLayout>


    通过按CTRL + S将更改保存到MainPage.xaml,然后关闭文件。

  10. 在解决方案资源管理器中,双击MainPage.xaml.cs打开它:

  11. 在MainPage.xaml.cs中,添加OnCallHistory事件处理程序方法,并修改OnCall事件处理程序方法,将已翻译的电话号码添加到App.PhoneNumbers集合,并启用callHistoryButton,前提是dialer变量不为空:

    点击(此处)折叠或打开

    1. using System;
    2. using Xamarin.Forms;

    3. namespace Phoneword
    4. {
    5.     public partial class MainPage : ContentPage
    6.     {
    7.         ...

    8.         async void OnCall(object sender, EventArgs e)
    9.         {
    10.             ...
    11.             if (dialer != null) {
    12.                 App.PhoneNumbers.Add (translatedNumber);
    13.                 callHistoryButton.IsEnabled = true;
    14.                 dialer.Dial (translatedNumber);
    15.             }
    16.             ...
    17.         }

    18.         async void OnCallHistory(object sender, EventArgs e)
    19.         {
    20.             await Navigation.PushAsync (new CallHistoryPage ());
    21.         }
    22.     }
    23. }


    通过按CTRL + S将更改保存到MainPage.xaml.cs,然后关闭文件。

  12. 在Visual Studio中,选择Build> Build Solution菜单项(或按CTRL + SHIFT + B)。 该应用程序将生成,一个成功的消息将出现在Visual Studio状态栏中:

    如果有错误,请重复上述步骤并纠正任何错误,直到应用程序构建成功。

  13. 在解决方案资源管理器中,右键单击Phoneword.UWP项目,然后选择设置为启动项目:

  14. 在Visual Studio工具栏中,按开始按钮(类似于播放按钮的三角形按钮)启动应用程序:

  15. 在解决方案资源管理器中,右键单击Phoneword.Droid项目,然后选择设置为启动项目。

  16. 在Visual Studio工具栏中,按开始按钮(类似于播放按钮的三角形按钮)在Android模拟器中启动应用程序。
  17. 如果您有iOS设备并满足Xamarin.Forms开发的Mac系统要求,请使用类似的技术将应用程序部署到iOS设备。

    注意:所有模拟器都不支持电话。

恭喜您完成了多屏Xamarin.Forms应用程序。 本指南中的下一个主题将回顾本演练中采取的步骤,以便了解页面导航和使用Xamarin.Forms的数据绑定。

目录
相关文章
|
Android开发 iOS开发 Windows
Xamarin.Forms快速入门
本演练演示如何创建将用户输入的字母数字电话号码转换为数字电话号码的应用程序,并调用该号码。 最终的应用如下所示: 创建Phoneword应用程序如下: 在“开始”屏幕中,启动Visual Studio。
1671 0
|
Android开发
Xamarin.Android快速入门
原文:Xamarin.Android快速入门 一、准备工作 1.创建一个空的解决方案,并命名为Phoneword     2.右击解决方案 新建-》新建项目 并命名为Phoneword_Droid   二、界面 1.
1078 0
|
XML Android开发 数据格式
从零开始学Xamarin.Forms(三) Android 制作启动画面
原文: 从零开始学Xamarin.Forms(三) Android 制作启动画面     Xamarin.Forms 在启动的时候相当慢,必须添加一个启动界面,步骤如下: 1.
1312 0
|
开发工具 Android开发 iOS开发
使用xamarin开发Android、iOS报错failed to open directory: 系统找不到指定的文件
使用vs2019学习xamarin时,创建新程序。使用模拟器真机等测试都报错如下图错误: ![请在此添加图片描述](https://developer-private-1258344699.cos.ap-guangzhou.myqcloud.com/column/article/5877188/20231030-de8ce5fd.png?x-cos-security-token=r4KyZDEowPT0kGTL0LqE8EnwfN1Nzexadb05dcffed3939ff8d7591c528c01706nvpGSE93QwHpZM8NwhJNTZctNRQa0l3KDhEnqj8P7d8t
121 0
使用xamarin开发Android、iOS报错failed to open directory: 系统找不到指定的文件
|
Java C# Android开发
.NET(WinCE、WM)开发转Android开发 ——Xamarin和Smobiler对比
WinCE从1995年诞生至今,已有20多年的发展历史,行业成熟方案覆盖范围广,从车载、工控、手持机都有涉及,且方案成熟。 近些年,Android以后来居上的态势,逐渐渗透至各行业领域,硬件手持大厂也把产品线重心向Android手持迁移,基于Android的行业解决方案越来越成熟,WinCE的开发人才流失,在WinCE解决方案上吃老本的企业寻求转型。
|
Web App开发 测试技术 Android开发
xamarin开发android收集的一些工具
原文:xamarin开发android收集的一些工具 xamarin开发android收集的一些工具 工欲善其事,必先利其器,从16年下半年开始做xamarin相关的开发,平时使用的一些工具和google插件给大家分享一下,都有下载地址,持续更新。
1537 0
|
前端开发 Android开发
Xamarin android中使用signalr实现即时通讯
前面几天也写了一些signalr的例子,不过都是在Web端,今天我就来实践一下如何在xamarin android中使用signalr,刚好工作中也用到了这个,也算是总结一下学到的东西吧,希望能帮助你们,更快地熟悉使用xamarin android进行即时通讯。
1444 0
|
XML Android开发 数据格式
Xamarin android spinner的使用方法
xamarin  android spinner的如何使用呢,大多数web开发人员经常会听到DropDownList 和Combobox 这种下拉选择框,spinner 的意思差不多,有道词典一下意思是“下拉列表”、“台湾斯普”,“下拉列表组件”,“微调控件”。
1589 0
|
XML Java Android开发
Xamarin android如何反编译apk文件
Xamarin android 如何反编译 apk文件 这里推荐一款XamarinAndroid开发的小游戏,撸棍英雄,游戏很简单,的确的是有点大。等一下我们来翻翻译这个Xamarin Android 开发的小游戏 下载链接:http://shouji.
1381 0
|
定位技术 开发工具 Android开发
Xamarin android如何调用百度地图入门示例(一)
在Xamarin android如何调用百度地图呢? 首先我们要区分清楚,百度地图这是一个广泛的概念,很多刚刚接触这个名词”百度地图api”,的确是泛泛而谈,我们来看一下百度地图的官网: android上使用百度地图的有Android地图SDK,定位SDK,导航SDK,全景SDK.
1504 0