系列目录

微信

1、【Xamarin.Forms 1】App的创建与运行

2、【Xamarin.Forms 2】App基础知识与App启动

知乎

1、【Xamarin.Forms 1】App的创建与运行

2、【Xamarin.Forms 2】App基础知识与App启动

博客园

1、【Xamarin.Forms 1】App的创建与运行

2、【Xamarin.Forms 2】App基础知识与App启动

CSDN

1、【Xamarin.Forms 1】App的创建与运行

2、【Xamarin.Forms 2】App基础知识与App启动

项目地址

1、GitHub:https://github.com/mzy666888/HelloXamarinFormsApp

2、Gitee:https://gitee.com/sesametechgroup/HelloXamarinFormsApp

引言

本篇文章将介绍Xamarin.FormsApp 各种页面类型。

开发环境

  1. Visual Studio 2019 16.6.2
  2. Xamarin.Forms 4.6.0.726
  3. Android 5.0 (API 级别21 - Lollipop)以上

正文

下面描述的所有页面类型都派生自Xamarin.Forms Page类。这些视觉对象占据全部或者大部分屏幕。Page对象表示ViewControlleriOSPage通用Windows平台中。在Android上,每个页面都占据屏幕Activity,但Xamarin.Forms页面并不是Activity对象。

Xamarin.Forms在开发中,使用到的各种页面类型主要包括:ContentPageMasterDetailPageNavigationPageTabbedPageCarouselPageTemplatedPage。这些页面在不同的使用场景中有不同的需求。

一、ContentPage页面

ContentPage是最简单且最常见的页面类型。将Content属性设置为一个View对象,该对象最常设置为Layout系列类型,如StackLayoutGrid或者ScrollView

二、MasterDetailPage页面

MasterDetailPage是管理两个信息窗体的页面类型。将Master属性设置为通常显示列表或菜单的页面。将Detail属性设置为显示母版页中选定项的页面。IsPresented属性控制主页面或详细信息页面是否可见。

我们在项目中添加一个MasterDetailPage页面,自动会添加三个页面:MasterDetailPage1.xamlMasterDetailPage1Detail.xaml``MasterDetailPage1Master.xaml和一个类:MasterDetailPage1MasterMenuItem.cs

其中MasterDetailPage1Detail.xaml(显示内容页面),MasterDetailPage1Master.xaml(显示菜单页面)为ContentPage类型的页面。

在真机上运行效果如下图(此图为两张图的合并后的图像,注意根据顶部内容进行区分)

三、NavigationPage页面

NavigationPage使用

NavigationPage使用基于堆栈的体系结构管理其他页面中的导航。在应用程序中使用页面导航时,主页的实例应传递给对象的构造函数NavigationPage

四、TabbedPage页面

TabbedPage派生自抽象MultiPage类,允许使用选项卡在子页面间导航。将Children属性设置为页的集合,或将属性设置ItemsSource为数据对象的集合,并将属性设置为ItemTemplate DataTemplate描述如何以可视方式标识每个对象的属性。

我们在项目中添加一个TabbedPage页面,系统默认生成的布局代码如下:

在真机上运行效果如下图:

五、CarouselPage页面

CarouselPage同样派生自抽象MultiPage类,允许通过手指轻扫在子页面之间导航。将Children属性设置为对象的集合ContentPage,或将属性设置ItemsSource为数据对象的集合,并将ItemTemplate属性设置为DataTemplate描述如何以直观方式表示每个对象的属性。

六、TemplatedPage页面

TemplatedPage使用控件模板显示全屏内容,时基于类ContentPage

可在添加->新建项中,选择Xamarin.Forms选择中看到部分可以添加的页面,对于没有出现的页面类型,可以添加一个ContentPage后进行修改成想要使用的类型。

加群讨论

参考文章:

【Xamarin.Forms 3】页面类型的更多相关文章

  1. Xamarin.Forms之页面及导航

    参考链接: Xamarin. Forms 页面 Xamarin.Forms 导航 Xamarin.Forms 第04局:页面 Xamarin.Forms页面代表跨平台的移动应用程序屏幕. 下文描述的所 ...

  2. xamarin.forms 绑定页面里指定元素的某个属性值

    {Binding Source={x:Reference elementName}, Path=BindingContext.propertyname, Mode=OneWay} elementNam ...

  3. 在 Xamarin.Forms 实现页面全屏显示

    NavigationPage.SetHasNavigationBar(this, false); 或者 <ContentPage ... NavigationPage.HasNavigation ...

  4. Xamarin.Forms入门-使用 Xamarin.Forms 来创建跨平台的用户界面

    Xamarin.Forms 是一个跨平台的.基于原生控件的UI工具包,开发人员可以轻松的创建适用于 Android,iOS 以及 Windows Phone的用户界面.Xamarin.Forms 通过 ...

  5. Xamarin.Forms之XAML

    官网参考 XAML基础知识 XAML(eXtensible Application Markup Language)可扩展应用程序标记语言,允许开发者在Xamarin.Forms应用中采用标记而不是代 ...

  6. Xamarin.Forms快速入门-深入探讨

    官网链接 项目介绍 以Notes项目为例,The Notes application consists of one solution containing four projects, as sho ...

  7. Xamarin.Forms: 无限滚动的ListView(懒加载方式)

    说明 在本博客中,学习如何在Xamarin.Forms应用程序中设计一个可扩展的无限滚动的ListView.这个无限滚动函数在默认的Xamarin.Forms不存在,因此我们需要为此添加插件.在这里我 ...

  8. xamarin.forms之page

    最近在使用xamarin.forms做APP开发,之前做过ios的应用,虽然没做过安卓,但之前也有一点了解,什么四大组件五大布局啥的,微软的xamarin.forms的文档也挺详细的,基本都是复制粘贴 ...

  9. C#使用Xamarin开发可移植移动应用(1.入门与Xamarin.Forms页面),附源码

    前言 什么是Xamarin? Xamarin始创于2011年,旨在使移动开发变得难以置信地迅捷和简单. Xamarin的产品简化了针对多种平台的应用开发,包括iOS.Android.Windows P ...

随机推荐

  1. java实现第七届蓝桥杯分小组

    分小组 分小组 9名运动员参加比赛,需要分3组进行预赛. 有哪些分组的方案呢? 我们标记运动员为 A,B,C,... I 下面的程序列出了所有的分组方法. 该程序的正常输出为: ABC DEF GHI ...

  2. 什么!你想要封装好的ajax

    ajax作为前端开发领域一个必不可少的内容,也是灵魂所在,今天就ajax的封装给大家做一个分析, 如果没有猜错的话现在基本上用原生去写ajax的意见不多了,这是肯定的 ,为什么这么说,jq的ajax大 ...

  3. GIT 仓库的搭建

    1.安装并配置必要的依赖关系 在CentOS 7(和RedHat / Oracle / Scientific Linux 7)上,以下命令还将在系统防火墙中打开HTTP和SSH访问. yum inst ...

  4. k8s学习-集群调度

    4.7.集群调度 4.7.1.说明 简介 Scheduler 是 kubernetes 的调度器,主要的任务是把定义的 pod 分配到集群的节点上.听起来非常简单,但有很多要考虑的问题: 公平:如何保 ...

  5. pyhon的浅拷贝与深拷贝

    1.赋值:简单地拷贝对象的引用,两个对象的id相同. 2.浅拷贝:创建一个新的组合对象,这个新对象与原对象共享内存中的子对象. 3.深拷贝:创建一个新的组合对象,同时递归地拷贝所有子对象,新的组合对象 ...

  6. 用于实现tab页签切换页面的angular路由复用策略

    使用场景 打开菜单页面的时候,出现对应页面的页签.切换页签,原来的页面信息状态保留,关闭页签则保留的信息删除.使用路由复用策略,保存路由快照.实现效果如图所示 实现过程 概述: 1.在app.modu ...

  7. Javascript模块化编程(转自阮一峰的网络日志)(备忘)

    http://www.ruanyifeng.com/blog/2012/10/javascript_module.html

  8. Node.js环境安装

    为其他使用先小小的接触这个环境,如不出意外,未来的一些时候抽时间会系统的学习element-ui, JavaScript, vue, node.js, 稍后也做个简易的ACE Editor体验一下 1 ...

  9. 重学 Java 设计模式:实战享元模式「基于Redis秒杀,提供活动与库存信息查询场景」

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 程序员‍‍的上下文是什么? 很多时候一大部分编程开发的人员都只是关注于功能的实现,只 ...

  10. PAI-AutoLearning 图像分类使用教程

    概述 PAI AutoLearning(简称PAI AL)自动学习支持在线标注.自动模型训练.超参优化以及模型评估.在平台上只需准备少量标注数据,设置训练时长即可得到深度优化的模型.同时自动学习PAI ...