第二十五章:页面变化(一)

简介: 如果您将Xamarin.Forms应用程序视为建筑物,那么您可以使用视图和元素形式的砖块构建此建筑物。 您可以使用布局类将它们排列到墙中,然后使用ContentPage将它们组织到房间中,通过围绕NavigationPage构建的导航功能,可以实现从一个房间到另一个房间的通道。

如果您将Xamarin.Forms应用程序视为建筑物,那么您可以使用视图和元素形式的砖块构建此建筑物。 您可以使用布局类将它们排列到墙中,然后使用ContentPage将它们组织到房间中,通过围绕NavigationPage构建的导航功能,可以实现从一个房间到另一个房间的通道。
使用派生自Page的其他可实例化类可以增强这种可视化架构。 这是完整的层次结构:

Page
    TemplatedPage
        ContentPage
    NavigationPage
    MasterDetailPage
    MultiPage<T>
        TabbedPage
        CarouselPage

本章专门介绍这些额外的页面衍生词,它们的相似之处在于它们作为父项来管理两个或多个其他页面的可视化表示:

  • MasterDetailPage管理两个页面:master通常是数据集合或项目列表,详细信息通常显示集合中的特定项目。
  • TabbedPage由选项卡标识的多个子页面组成。您可以使用一组离散页面填充TabbedPage,或者基于数据集合自动生成选项卡和页面,其方式与ListView基于数据集合生成项目的方式非常相似。使用第二个选项,每个选项卡都与集合的成员相关联,使用模板格式化,但此选项不适用于iOS平台。
    CarouselPage计划弃用以支持即将发布的CarouselView,因此本章不再讨论。 MultiPage 是抽象的,不能自己实例化,但它定义了TabbedPage的大多数属性和事件。

大师和细节

MasterDetailPage定义了两个属性,名为Master和Detail类型。 通常,您将这两个属性设置为ContentPage类型的对象,但是目前,要使MasterDetailPage在通用Windows平台上工作,详细信息页面必须是NavigationPage。
MasterDetailPage如何在这两个页面之间显示和切换取决于几个因素:底层操作系统,无论是在手机还是平板电脑上运行程序,设备的纵向或横向,以及MasterDetailPage属性的设置名为MasterBehavior。有几种行为是可能的:

  • 拆分:主页面和详细页面并排显示,左侧为主页面,右侧为详细信息。
  • popover:详细信息页面设置动画以覆盖或部分覆盖母版页。有三种可能性:
    o slide:详细信息和母版页来回滑动。
    o重叠:详细页面部分覆盖母版页。
    o swap:详细信息页面完全遮盖了母版页。
    理论上,MasterDetailPage的MasterBehavior属性允许您在分割和弹出行为之间进行选择。您将此属性设置为MasterBehavior枚举的五个成员之一:
  • Default
  • Split
  • SplitOnLandscape
  • SplitOnPortrait
  • Bopover

但是,正如您将看到的那样,MasterBehavior属性的设置对于在手机上运行的应用程序没有任何影响。它仅影响在平板电脑或桌面上运行的应用程序。电话总是表现出弹出行为。此行为是导致幻灯片,重叠还是交换取决于平台。

目录
相关文章
|
2月前
|
前端开发 JavaScript API
|
3月前
|
移动开发 JavaScript 前端开发
HTML新特性【规划公交路线、规划步行路线、定位、自定义视角动画、账号和获取密钥、初始化、变更地图类型、添加控件、改变控件位置】(五)-全面详解(学习总结---从入门到深化)(上)
HTML新特性【规划公交路线、规划步行路线、定位、自定义视角动画、账号和获取密钥、初始化、变更地图类型、添加控件、改变控件位置】(五)-全面详解(学习总结---从入门到深化)
43 0
|
3月前
|
JSON 定位技术 API
HTML新特性【规划公交路线、规划步行路线、定位、自定义视角动画、账号和获取密钥、初始化、变更地图类型、添加控件、改变控件位置】(五)-全面详解(学习总结---从入门到深化)(下)
HTML新特性【规划公交路线、规划步行路线、定位、自定义视角动画、账号和获取密钥、初始化、变更地图类型、添加控件、改变控件位置】(五)-全面详解(学习总结---从入门到深化)
33 0
|
8月前
|
编解码 计算机视觉 Python
2023年电赛---运动目标控制与自动追踪系统(E题)关于网友的问题回复
2023年电赛---运动目标控制与自动追踪系统(E题)关于网友的问题回复
255 0
|
9月前
|
数据采集 监控 数据可视化
做出酷炫的动态统计图表,不一定要写代码
首先这个名字很长的,就是上面 GDP 图表的作者 Jannchie见齐 基于 D3.js 开发的 将历史数据排名转化为动态柱状图图表 的项目,并在 github 上开源了。
|
11月前
|
JavaScript 前端开发
jquery 展开收缩改变状态 保姆式教学代码,默认第二项展开
jquery 展开收缩改变状态 保姆式教学代码,默认第二项展开
|
JSON 定位技术 数据格式
基于GEE的制作全球任意地方时间序列数据动画的方法
基于GEE的制作全球任意地方时间序列数据动画的方法
116 0
好客租房140-长列表性能优化(可视区域渲染)
好客租房140-长列表性能优化(可视区域渲染)
74 0
好客租房140-长列表性能优化(可视区域渲染)
|
Web App开发 安全 iOS开发
Chrome 90迎重大更新,这5个变化你一定感兴趣!
作为一款占据市场份额68.3%的浏览器,Chrome可以用“一骑绝尘”来形容。
Chrome 90迎重大更新,这5个变化你一定感兴趣!
|
Android开发 Windows iOS开发
第二十五章:页面变化(六)
使用ItemTemplateTabbedPage还可用于呈现小数据集,每个数据集是由选项卡标识的单独页面。 您可以通过设置TabbedPage的ItemsSource属性并指定用于呈现每个页面的ItemTemplate来完成此操作。
533 0