在Windows Phone 8.1中下拉以刷新

13
我想在我的WP8.1 (运行时) 应用程序中实现下拉刷新功能。我尝试寻找这个 WP 版本的解决方案,但是据我所见,此功能仅适用于较旧版本的 WP。
我有一个 ListView,我想在其中使用它。使用 ScrollViewer,我可以检测到用户何时到达列表末尾,但例如 VerticalOffset 值不能是负数,因此我无法检测下拉手势。
有人有任何想法如何为我的应用程序实现此功能吗?

让控件(listview或父控件)向下拖动(到阈值)以触发刷新怎么样?使用动画创建平滑的反弹效果,并通知用户已更新的内容。如果列表视图包含许多项,请不要忘记虚拟化列表视图项以避免性能问题。 - Iris Classon
那么,没有准备好的解决方案吗?我不能做复杂的个性化动画,因为我没有足够的经验。如果我能检测到弹回或者用户将列表下拉到一个阈值值就足够了。好吧,独特的动画是最好的,但这比没有要好。否则,已经实现了刷新列表,它可以通过按钮工作,但下拉手势更加用户友好。 - Speederer
1
CodeNoob:感谢提供链接,我已经尝试将那段代码应用于我的应用程序,但在 WP Runtime 中没有与鼠标相关的事件处理程序。因此,我认为我不能使用那个解决方案,不过看起来很不错。 - Speederer
Iris Classon:谢谢,明天我会尝试写一些代码,如果遇到困难,我会来这里寻求帮助。 :) - Speederer
1
请使用指针事件代替鼠标事件(以支持触摸和鼠标):http://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh465387.aspx 我稍后会为您提供一个小的代码示例。祝编码愉快! - Iris Classon
显示剩余3条评论
1个回答

13
我已经创建了一个简单的控件,实现了“下拉刷新”和“按需加载数据”的功能,您可以在 nuget 找到它,并从这篇博客文章中了解更多信息。适用于Windows 8和Windows Phone 8.1。 更新:如果有人感兴趣,我已经发布了此控件的源代码: https://github.com/TareqAteik/ExtendedListView enter image description here

有没有可能自动滚动到ListView的顶部?以前我用ScrollViewer(在ListView之外)来实现,使用以下代码:scrollViewer.ChangeView(null, 0d, null, true);但现在我不能使用ScrollViewer,因为它会产生奇怪的问题。我尝试了这个:historyList.ScrollIntoView(historyList.Items.First());但它什么也没做。有时我还有另一个问题:当我启动应用程序时,“下拉刷新”文本是可见的,只有当我转到另一页并返回时,它才会隐藏(并正常工作)。 - Speederer
抱歉回复晚了,但我已经修复了,请从NuGet获取最新的更新。 - Ateik
更新后,项目不会出现,我只能看到对象的类型而不是值。你能检查一下吗?还是这只是我的问题? - Speederer
另一个问题是性能。我知道这不是一件简单的事情,但我希望你能够解决它。原始的列表视图是一个流畅的解决方案,但如果有很多项(50-100或以上),扩展的列表视图需要更多时间来显示列表项。在这种情况下,当我滚动时,我只能看到黑屏。在解决这些问题之后,我认为扩展的列表视图将是一个非常好的解决方案来显示列表中的项目。再次感谢你的工作。 - Speederer
到目前为止看起来很不错,但只是想澄清一下——它是开源的还是不是? - Sevenate
显示剩余14条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接