Giter Site home page Giter Site logo

android-ptr-comparison's Issues

下拉体验对比

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

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

具体测试方法为:

  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的处理』。这也是很关键的:第一次滑到顶骤停了,再拉才可以下拉刷新;和一次滑就能看到头部。用户体验差距是巨大的。至少,提供给开发者,开发者可以选择不用。

这一点在评价里面漏了。

非常有价值的对比测试

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

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.