Giter Club home page Giter Club logo

android-ptr-comparison's People

Contributors

desmond1121 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

android-ptr-comparison's Issues

非常有价值的对比测试

非常感谢你的总结,对每个库流畅度上分析的非常深入,还给出了解决方案,赞!
我最大的收获是这篇文章对性能优化实践方面的帮助。
请教一个问题,文中提到用systrace截取下拉1s的数据,使用systrace如何精准的截取想要操作的时间区间呢?是通过代码打点嘛还是其他方法?
谢谢!

下拉体验对比

感谢作者用心的对比,同时在使用过程中,我认为下拉组件还需要做到这一点才能让"下拉动作"更加流畅:

用户可以随意在下拉刷新和滑动列表之间切换, 而不需要抬起手指

具体测试方法为:

  1. 滑动列表至第1个 item 隐藏.
  2. 下拉列表直至露出刷新头部. (能否顺利下拉)
  3. 上滑列表隐藏头部.
  4. 继续上滑查看是否能够滑动列表. (能否顺利上滑)

对比后发现:

能否顺利下拉 能否顺利上滑
Android-PullToRefresh 不能 不能
android-Ultra-Pull-To-Refresh 可以 可以
android-pulltorefresh 可以 可以
Phoenix 不能 不能
FlyRefresh 可以 可以
SwipeRefreshLayout 可以 不能

另外我 clone 这个库对比的过程中,发现 FlyRefreshLayout 需要用在支持 NestedScroll , 所以在测试的时候需要添加 mListView.setNestedScrollingEnabled(true); 来测试..

建议

1、关于Chrisbanes的PTR: 『顶部视图难以拓展,不建议放入工程中使用』,其实下拉刷新真的要实现定制和自定义,谁不会改几行代码呢。况且博主已经说了作者已经抽了一个LoadingLayout,那么重写这个类或从外部传递参数就行了。适当传递布局文件或者View,都能够达到很easy的定制。LoadingLayout内部耦合的代码也并不多,这一点的评价上可以再考虑;

2、由于下拉刷新已经较为偏离Google所『设定』的方向,所以在讨论这样的下拉刷新就隐含了『不局限于Google希望的风格』的前提。所以,从不拘泥于Android风格的设计上讲,用户体验方面,还有一个很重要的『内部滚动衔接外部OverScroll的处理』。这也是很关键的:第一次滑到顶骤停了,再拉才可以下拉刷新;和一次滑就能看到头部。用户体验差距是巨大的。至少,提供给开发者,开发者可以选择不用。

这一点在评价里面漏了。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.