使用 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
属性被关闭,因此您需要创建触发器来启动它。 在默认模式下做出一些调整,您可以使它按照您的想法运行。 您将在下一单元中练习进行这些调整,其大致步骤如下:
插入
Timer
控件。将
AutoStart
属性设置为true
。将
Duration
属性设置为4000
(4 秒)。将
OnTimerEnd
属性设置为Navigate('<yourScreenName>')
。将
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
函数。
Switch
和 If
都是评估条件后执行操作的方法。
例如,在 Contoso 咖啡机应用中,Dropdown
控件使用以下代码作为 OnChange
属性:
Switch(Self.SelectedText.Value,
"Catalog",Navigate('Catalog Screen',ScreenTransition.Cover),
"Admin",Navigate('Admin Screen',ScreenTransition.Cover)
);
Reset(Self)
Switch
语句会评估特定的值,以查看它是否与其中一个结果匹配,然后执行一项操作。 在上个示例中,Self.SelectedText.Value
是 Dropdown
控件中选中的值。 如果此值为 Catalog
,Switch
函数会执行导航到“Catalog Screen”的操作。 如果此值为 Admin
,Switch
函数会执行导航到“Admin Screen”的操作。
Switch
仅执行单个条件,取决于匹配的值。 当您有多种基于单一值的可能行动方案时,这是理想的选择。
最后,您使用 Reset
函数将 Dropdown
控件重置为 Default
值 ""
(空字符串)。
如果您不能完全理解以上所有信息,请不要担心, 我们将在下一单元的练习中再次进行演示。