使用 Navigate 函数的更多方法

已完成

要在应用中设置导航,除了简单地使用按钮或图标控件的 OnSelect 属性之外,还有许多其他方法。 本单元将向您介绍三种常用技术:Form 控件的 OnSuccess 属性、Timer 控件的 OnTimerEnd 属性以及 Dropdown 控件的 OnChange 属性。

OnSuccess 导航

作为设计人员,用户体验考量因素是指向提交数据更改的用户提供一些反馈。 Power Apps 提供了进行这种反馈的工具。 如果在您的应用中插入一个 Success Screen,您将会希望仅当 Power Apps 成功记录更新后的数据时,使用户进入此屏幕。 那么,您如何做到呢?

首先,在新建屏幕 > 模板中找到 Success Screen。 然后将它添加到您的应用中。

接下来,找到您的窗体并转到 OnSuccess 属性。 重要的是,要仅在 Power Apps 正确写入用户的数据之后,才将用户发送到 Success Screen。 在 OnSuccess 属性中,您可以添加具有 Success Screen 名称的 Navigate 函数,如:

Navigate(‘Success Screen’, ScreenTransition.Fade)

然后,您会希望用户能够返回另一个屏幕。 一种好方法(除了制作可选择的按钮/图标之外)是添加 Timer 控件。

OnTimerEnd 导航

使用 Timer 控件是一种有助于在应用中移动用户的方法。 当时间耗尽时,Navigate 函数将转移至指定屏幕。 在我们的示例中,Timer 控件会为用户展示成功消息,几秒钟后返回 Catalog Screen。

在将 Timer 控件添加到应用后,该控件可见,并且它的持续时间设置为 60,000 毫秒(60 秒)。 它的 AutoStart 属性被关闭,因此您需要创建触发器来启动它。 在默认模式下做出一些调整,您可以使它按照您的想法运行。 您将在下一单元中练习进行这些调整,其大致步骤如下:

  1. 插入 Timer 控件。

  2. AutoStart 属性设置为 true

  3. Duration 属性设置为 4000(4 秒)。

  4. OnTimerEnd 属性设置为 Navigate('<yourScreenName>')

  5. Visible 属性设置为 false

AutoStart 设置为 true 的情况下,当在预览或播放模式下,用户进入屏幕时 Timer 控件将会启动。 四秒后,Navigate 函数将触发,将用户发送到另一个屏幕。

OnChange 导航

还有一种效果出色的方法,那就是向您的应用添加菜单,作为 Dropdown 控件。 您可以向一个屏幕中添加下拉列表功能,然后将其复制到应用的其他屏幕。

Dropdown 控件使用数据表(数据类型:Table)。 您可以在 Items 属性中添加所需的任何数据表。 如果只有两个屏幕可供导航,则可以在 Dropdown 控件的 Items 属性中放入一个表,如下所示:

["","Catalog", "Admin"]

方括号表示数据表,代码的含义与以下示例完全相同:

Table({Value: ""},{Value: "Catalog"},{Value: "Admin"})

使用方括号可以更简单地输入相同的数据。

您添加了一个空文本字符串 ("") 作为表中的第一个值。 您为其指定 Default 属性。

定义 Items 属性后,我们可以更改 Dropdown 控件的 OnChange 属性。

提示

请注意,要更新 Dropdown 控件的正确属性。 更新 OnSelect 属性时很容易犯错误。 请记住,您是在选择控件时启动 OnSelect 属性,而不是在更改控件时启动。 这种时候,请务必更新 OnChange 属性。

更新 Dropdown 控件的 OnChange 属性时,最高效的方法是使用 Switch 函数,并使用 Self 函数引用该控件。 但是,您也可以使用 If 函数。 SwitchIf 都是评估条件后执行操作的方法。

例如,在 Contoso 咖啡机应用中,Dropdown 控件使用以下代码作为 OnChange 属性:

Switch(Self.SelectedText.Value,
"Catalog",Navigate('Catalog Screen',ScreenTransition.Cover),
"Admin",Navigate('Admin Screen',ScreenTransition.Cover)
);
Reset(Self)

Switch 语句会评估特定的值,以查看它是否与其中一个结果匹配,然后执行一项操作。 在上个示例中,Self.SelectedText.ValueDropdown 控件中选中的值。 如果此值为 CatalogSwitch 函数会执行导航到“Catalog Screen”的操作。 如果此值为 AdminSwitch 函数会执行导航到“Admin Screen”的操作。

Switch 仅执行单个条件,取决于匹配的值。 当您有多种基于单一值的可能行动方案时,这是理想的选择。

最后,您使用 Reset 函数将 Dropdown 控件重置为 Default""(空字符串)。

如果您不能完全理解以上所有信息,请不要担心, 我们将在下一单元的练习中再次进行演示。