2016-04-28 21 views
1

假设我有一个类似微软天气应用程序的应用程序。在Windows UWP应用程序中等待数据时进度指示器的推荐模式是什么?

在启动应用程序时,我需要从互联网下载预测。在等待时,我还需要显示进度指示器。推荐以下哪些(如果有的话)?

  1. 使用导航控件(汉堡包侧面菜单)以及页面内容(但没有值,因为它们是数据绑定的)完全呈现页面。然后覆盖一个模态控件,如带有进度指示器的弹出窗口和取消按钮。

  2. 只渲染带有进度指示器的应用程序根shell(没有其他内容,或像汉堡菜单那样的导航控件可见)。然后,任务完成后,导航到包含内容的主页。

  3. 使用内容和导航控件呈现主页,但只隐藏内容(可见性=折叠)并在其位置显示进度指示器。下载数据后,隐藏进度指示器并显示内容。

我不知道这些我应该使用哪一个。有没有推荐的方法来做到这一点?

还有没有更好的方法,我没有想到?

+1

这真的取决于你的应用程序,但在一般情况下,显示任何可以立即被加载并使用。如果* all *您的应用程序中的页面需要数据,或者在相关数据加载之前没有任何用户界面可用,那么在显示导航用户界面之前等待至少加载主页可能不是一个坏主意。 – BoltClock

+0

@BoltClock因为我的大部分页面都需要来自其他api的数据,我应该只在最初一次加载所有页面的初步数据吗?还是应该在用户导航到每个页面时按需加载每个页面数据?我想尽可能在​​开始时加载,稍后用户导航到不同的页面时,它的速度非常快 - 他们不必在页面之间等待。你怎么看? – erotavlas

回答

2

这个问题没有一个完美的答案,但我会尝试解释最常见的解决方案。以上的任何一点都不好或不好。最好专注于用户体验。

使用导航控件渲染完整页面并显示加载弹出窗口并不是真的坏主意 - 用户会看到整个页面,例如进度环,并有机会取消它。但暗示,如果数据未加载或用户放弃拉它,应用程序中会有空的内容(如果这是用户首次启动应用程序时)。

您写的场景的最佳解决方案之一是使用扩展的Splash Screen。一旦启动应用程序,首先会显示启动屏幕,当您扩展它时,您可以添加进度环以指示正在检索数据。 这是非常优雅的方式呈现给用户。

请参见下面的理念为指导如何做到这一点:

UWP Extended splash screen

+0

谢谢,我用你的建议,它运作良好。一个我没有时间去调试的奇怪问题是,扩展的飞溅渲染为Windows 10 Mobile(设备和仿真器)上的空白屏幕 - 只是背景颜色存在,但没有图像或进度环。在桌面上它显示正确。我想知道它是否与图像和进度环有关的定位问题。我可能会发布一个单独的问题,如果我不明白。 – erotavlas

+0

您可以将该屏幕的XAML代码粘贴到评论中吗?我可以在空闲时间看看它。 –

+0

我想通了,从GitHub上的windows uwp样本中,有一个闪屏样本。我认为他们会检测它是否是移动设备,并根据比例因子缩放图像。 – erotavlas

相关问题