【Xamarin.Forms 3】页面类型
系列目录
微信
2、【Xamarin.Forms 2】App基础知识与App启动
知乎
2、【Xamarin.Forms 2】App基础知识与App启动
博客园
2、【Xamarin.Forms 2】App基础知识与App启动
CSDN
2、【Xamarin.Forms 2】App基础知识与App启动
项目地址
1、GitHub:https://github.com/mzy666888/HelloXamarinFormsApp
2、Gitee:https://gitee.com/sesametechgroup/HelloXamarinFormsApp
引言
本篇文章将介绍Xamarin.Forms
中 App
各种页面类型。
开发环境
- Visual Studio 2019 16.6.2
- Xamarin.Forms 4.6.0.726
- Android 5.0 (API 级别21 - Lollipop)以上
正文
下面描述的所有页面类型都派生自Xamarin.Forms Page
类。这些视觉对象占据全部或者大部分屏幕。Page
对象表示ViewController
在iOS
和Page
通用Windows
平台中。在Android
上,每个页面都占据屏幕Activity
,但Xamarin.Forms
页面并不是Activity
对象。
Xamarin.Forms
在开发中,使用到的各种页面类型主要包括:ContentPage
,MasterDetailPage
,NavigationPage
,TabbedPage
,CarouselPage
,TemplatedPage
。这些页面在不同的使用场景中有不同的需求。
一、ContentPage
页面
ContentPage
是最简单且最常见的页面类型。将Content
属性设置为一个View
对象,该对象最常设置为Layout
系列类型,如StackLayout
,Grid
或者ScrollView
。
二、MasterDetailPage
页面
MasterDetailPage
是管理两个信息窗体的页面类型。将Master
属性设置为通常显示列表或菜单的页面。将Detail
属性设置为显示母版页中选定项的页面。IsPresented
属性控制主页面或详细信息页面是否可见。
我们在项目中添加一个MasterDetailPage
页面,自动会添加三个页面:MasterDetailPage1.xaml
,MasterDetailPage1Detail.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】页面类型的更多相关文章
- Xamarin.Forms之页面及导航
参考链接: Xamarin. Forms 页面 Xamarin.Forms 导航 Xamarin.Forms 第04局:页面 Xamarin.Forms页面代表跨平台的移动应用程序屏幕. 下文描述的所 ...
- xamarin.forms 绑定页面里指定元素的某个属性值
{Binding Source={x:Reference elementName}, Path=BindingContext.propertyname, Mode=OneWay} elementNam ...
- 在 Xamarin.Forms 实现页面全屏显示
NavigationPage.SetHasNavigationBar(this, false); 或者 <ContentPage ... NavigationPage.HasNavigation ...
- Xamarin.Forms入门-使用 Xamarin.Forms 来创建跨平台的用户界面
Xamarin.Forms 是一个跨平台的.基于原生控件的UI工具包,开发人员可以轻松的创建适用于 Android,iOS 以及 Windows Phone的用户界面.Xamarin.Forms 通过 ...
- Xamarin.Forms之XAML
官网参考 XAML基础知识 XAML(eXtensible Application Markup Language)可扩展应用程序标记语言,允许开发者在Xamarin.Forms应用中采用标记而不是代 ...
- Xamarin.Forms快速入门-深入探讨
官网链接 项目介绍 以Notes项目为例,The Notes application consists of one solution containing four projects, as sho ...
- Xamarin.Forms: 无限滚动的ListView(懒加载方式)
说明 在本博客中,学习如何在Xamarin.Forms应用程序中设计一个可扩展的无限滚动的ListView.这个无限滚动函数在默认的Xamarin.Forms不存在,因此我们需要为此添加插件.在这里我 ...
- xamarin.forms之page
最近在使用xamarin.forms做APP开发,之前做过ios的应用,虽然没做过安卓,但之前也有一点了解,什么四大组件五大布局啥的,微软的xamarin.forms的文档也挺详细的,基本都是复制粘贴 ...
- C#使用Xamarin开发可移植移动应用(1.入门与Xamarin.Forms页面),附源码
前言 什么是Xamarin? Xamarin始创于2011年,旨在使移动开发变得难以置信地迅捷和简单. Xamarin的产品简化了针对多种平台的应用开发,包括iOS.Android.Windows P ...
随机推荐
- Java实现 LeetCode 671 二叉树中第二小的节点(遍历树)
671. 二叉树中第二小的节点 给定一个非空特殊的二叉树,每个节点都是正数,并且每个节点的子节点数量只能为 2 或 0.如果一个节点有两个子节点的话,那么这个节点的值不大于它的子节点的值. 给出这样的 ...
- Java实现 LeetCode 139 单词拆分
139. 单词拆分 给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词. 说明: 拆分时可以重复使用字典中的单词. 你可 ...
- Java实现 蓝桥杯 算法训练 二进制数数
试题 算法训练 二进制数数 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 给定L,R.统计[L,R]区间内的所有数在二进制下包含的"1"的个数之和. 如5的二进 ...
- 类似-Xms、-Xmn这些参数的含义:
类似-Xms.-Xmn这些参数的含义: 答: 堆内存分配: JVM初始分配的内存由-Xms指定,默认是物理内存的1/64 JVM最大分配的内存由-Xmx指定,默认是物理内存的1/4 默认空余堆内存小于 ...
- java实现输入日期
/* 从键盘输入一个日期,格式为 yyyy-M-d 要求计算该日期与 1949 年 10 月 1 日距离多少天 例如: 用户输入了:1949-10-2 程序输出:1 用户输入了:1949-11-1 程 ...
- PAT甲级 Reversible Primes
描述 A reversible prime in any number system is a prime whose "reverse" in that number syste ...
- 树莓派使用 OLED 屏显示图片及文字
树莓派默认是不带显示屏的,如果想要查看系统的一些信息,需要使用电脑登录到树莓派,或者通过 HDMI 连接外接显示器查看.这样做总是有点麻烦,我们可以通过外接一个 OLED 屏来显示一些关键参数或者图片 ...
- Linux创建与删除
一.创建文件夹.文本.用户.组 mkdir 创建文件夹 touch 创建文本 useradd 创建用户 例1:创建一个文件夹xiaomi 创建文件夹:mkdir xiaomi 例2:创建一个文件如ad ...
- 温故知新-java多线程&深入理解线程池
文章目录 摘要 java中的线程 java中的线程池 线程池技术 线程池的实现原理 简述 ThreadPoolExecutor是如何运行的? 线程池运行的状态和线程数量 任务执行机制 队列缓存 Wor ...
- pip常出问题的操作
pip 是一个 Python 包安装与管理工具. 以pip安装yaml为主: 1.更新pip 打开cmd命令,安装yaml包,输入pip install pyyaml,提示pip已过期 更新pip版本 ...