我正在寻找在 ViewPager 上实现拉刷新,我很好奇最好的方法是什么。
看起来只是在 ViewPager 上设置页面转换并不能真正起到作用,因为你真的想要 onAbsorb 之类的东西,它在 EdgeEffect 中可用。
仅仅实现一个 EdgeEffect 似乎不是正确的选择,因为 AFAICT,它不会移动任何现有的孩子。
我宁愿不使用 PullToRefresh 库(因为它没有被维护),并且宁愿做大部分自定义的东西 -
关于哪种方法是最有希望的方法的任何建议?
我正在寻找在 ViewPager 上实现拉刷新,我很好奇最好的方法是什么。
看起来只是在 ViewPager 上设置页面转换并不能真正起到作用,因为你真的想要 onAbsorb 之类的东西,它在 EdgeEffect 中可用。
仅仅实现一个 EdgeEffect 似乎不是正确的选择,因为 AFAICT,它不会移动任何现有的孩子。
我宁愿不使用 PullToRefresh 库(因为它没有被维护),并且宁愿做大部分自定义的东西 -
关于哪种方法是最有希望的方法的任何建议?
它是滑动刷新您想要的,因为它是 ViewPager。当检测结果为正时,检测滑动(第一个元素向左,最后一个元素向右)并请求新数据。为此,您希望通过自定义 ViewPager 和 SwipeGesture 检测器实现 onInterceptTouch。之后,您可以尝试您在问题中建议的其他自定义功能。
我正在寻找在 ViewPager 上实现拉刷新,我很好奇最好的方法是什么。
您确定不想使用 PullToRefresh 库,我明白了。但是,如果您正在寻找类似的行为,我会在那里开始您的研究/探索。Chris 的 repos 有一个健康的提交历史,你可以从中推断出一些关于设计选择、陷阱和修复的决定。
https://github.com/chrisbanes/Android-PullToRefresh
https://github.com/chrisbanes/ActionBar-PullToRefresh
使用滚动视图之类的东西,我想您可以在操作栏中使用 EdgeEffects 和 PTR,而根本不用担心移动孩子(开箱即用 - 他的 google play 示例应用程序具有这种行为)。但我不确定这是否是您正在寻找的确切效果。
不要在 Android 上实现拉取刷新。我知道这不是答案,但拉动刷新是 iOS 惯例,而不是 Android 惯例。