【问题标题】:Pull down to refresh in Windows Phone 8.1在 Windows Phone 8.1 中下拉刷新
【发布时间】:2015-01-02 23:24:02
【问题描述】:


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

【问题讨论】:

  • 让控件(列表视图或父控件)被拖下(到一个阈值)来触发刷新呢?使用动画创建平滑的反弹并通知用户更新的内容。如果列表视图包含许多项目,请不要忘记虚拟化它以避免性能问题。
  • 那么,不存在任何现成的解决方案吗?我不能做复杂的个别动画,因为我没有足够的经验。如果我可以检测到反弹或者用户将列表下拉到阈值就足够了。好的,一个独特的动画将是最好的,但这总比没有好。否则刷新列表已经实现了,它与按钮一起使用,但下拉手势更加用户友好。
  • 或许这篇文章能帮到你codeproject.com/Articles/428088/…
  • CodeNoob:感谢您的链接,我尝试为我的应用程序实现该代码,但 WP Runtime 中没有鼠标相关的事件处理程序。所以我认为我不能使用那个解决方案,但它看起来不错。
  • 使用指针事件代替鼠标事件(支持触摸和鼠标):msdn.microsoft.com/en-us/library/windows/apps/xaml/… 今天晚些时候我会为你做一个小代码示例。编码愉快!

标签: c# listview windows-runtime windows-phone-8.1 pull-to-refresh


【解决方案1】:

我创建了一个实现“拉动刷新”功能和“按需加载数据”的简单控件,您可以在nuget 中找到它,从this blog post 中了解它。适用于 Windows 8 和 Windows Phone 8.1

更新:如果有人感兴趣,我已经发布了这个控件的源代码: https://github.com/TareqAteik/ExtendedListView

【讨论】:

  • 嗨,创建这个扩展列表视图是个好主意!但是你能举一个完整的例子吗?当我尝试使用它时遇到了一些问题。提前致谢!
  • 对不起,看来我的问题已经解决了!感谢您的工作!
  • 可以自动滚动到ListView的顶部吗?早些时候,我使用 ScrollViewer(在 ListView 之外)使用以下代码:scrollViewer.ChangeView(null, 0d, null, true);但是现在我不能使用 ScrollViewer,因为它会做出奇怪的事情。我试过这个:historyList.ScrollIntoView(historyList.Items.First());但它什么也没做。我有时会遇到另一个问题:启动应用程序时可以看到“下拉刷新”文本,并且只有在我转到另一个页面并返回时它才能隐藏(并且可以正常工作)。
  • 还有我的第三个问题:我缓存了列表视图所在的页面。如果我导航到另一个页面并返回,则位置与以前相同。但是如果我触摸它,列表视图的项目就会消失,如果我释放屏幕,列表视图会转到顶部。你能帮我解决这些问题吗?谢谢
  • 我将不得不查找它,我正在开发库的下一个版本(添加命令以使其对 mvvm 更友好)。我会解决您报告的问题并让您知道...
猜你喜欢
  • 2012-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多