【发布时间】:2011-09-15 17:33:27
【问题描述】:
我想知道应用内主页按钮的实现,它可以将您从任何页面返回到主页面。据我所知,WP7 开发指南不允许这样做。但我找不到任何关于此的书面信息。
有人知道这是在哪里写的吗?
【问题讨论】:
标签: windows-phone-7 navigation windows-phone home-button
我想知道应用内主页按钮的实现,它可以将您从任何页面返回到主页面。据我所知,WP7 开发指南不允许这样做。但我找不到任何关于此的书面信息。
有人知道这是在哪里写的吗?
【问题讨论】:
标签: windows-phone-7 navigation windows-phone home-button
一般不鼓励主页按钮,msdn source:
在用户界面中放置主页按钮与 Windows Phone 导航模型不同。
在您的应用中实现主页按钮也可能会导致第二个问题,该问题对您的应用有更严重的影响:它可能会无意中造成用户可能陷入无限(或接近无限)循环的场景当他或她同时使用您的主页按钮和硬件返回按钮进行导航时。如果他们使用后退按钮从一个应用程序返回到您的应用程序只是为了到达另一个应用程序,这个循环可能会变得更糟。确保这些问题不会影响您的应用。
但是,请尽量让您的应用的架构保持简单,并利用列表和数据透视表,以便用户可以通过几步后退导航回到登录屏幕,然后从那里返回之前启动的应用。
但是有些应用程序不能进行浅层导航并且需要主页按钮,例如谷歌驱动器或保管箱文件夹浏览器 - 在深入文件夹结构后,用户将希望快速导航到主页。指导方针,msdn source:
如果您的应用允许用户固定页面,请考虑是否需要主页按钮才能让用户快速返回应用的根目录。 主页按钮导航到应用的主页,然后清除整个导航返回堆栈。
例如,如果固定页面是购物车,则用户可能希望完成购物车中的购买,然后再次开始购物。在这种情况下,为用户提供主页按钮可改善用户体验,减少他们返回应用开始所需的点击次数。
在您的主页中:
protected override void OnNavigatedTo(NavigationEventArgs e)
{
while (NavigationService.BackStack.Any())
NavigationService.RemoveBackEntry();
base.OnNavigatedTo(e);
}
【讨论】:
允许但不推荐。作为一般规则,您应该依靠后退按钮进行导航以返回主页。
如果您确实想实现此行为,则应与熟悉手机的实际用户仔细测试。不要让不熟悉手机的用户使您的 UX 测试无效。您的实际用户将会并且期望您的应用遵循原生应用和几乎所有其他应用的约定。
如果您确实需要实现此功能,您可能需要使用NonLinear Navigation Service 来正确管理后退按钮的行为。
【讨论】:
我不认为这是不允许的,但是,这样做可能会导致导航循环,当用户尝试使用后退按钮退出您的应用时,这会惹恼用户。
例如,假设一个应用有 3 个页面,A、B 和 C。假设页面 C 包含一个“主页”按钮,可以直接返回页面 A。因此,您的导航堆栈最终可能如下所示:
A -> B -> C -> A -> B -> C -> A ....
这需要多次按下后退按钮才能让用户返回开始页面并退出应用程序。有几种方法可以避免这种情况,最明显的当然是不提供“主页”按钮。但是,如果您认为这是您的应用程序的必备条件,您可以
使用non-linear navigation service 管理循环导航
使用更简单的方法来维护全局标志,当用户按下主页按钮时设置此标志并调用NavigationService.GoBack()。覆盖每个页面上的OnNavigatedTo 方法,如果设置了此全局标志,则再次调用NavigationService.GoBack(),直到您到达主页。
【讨论】:
我相信只要后退按钮导航回到最后一个可见页面,它就被允许。
【讨论】: