转载请标明原文地址:http://blog.csdn.net/yalinfendou/article/details/47707017
关于Android下拉刷新上拉加载,网上的Demo太多太多了,这里不是介绍怎么去实现下拉刷新上拉加载,而是针对下拉刷新上拉加载常用的一些应用场景就行了一些总结,包含了下拉刷新上拉加载过程中遇到的一些手势冲突问题的解决方法(只能算是抛砖引玉)。
去年9月的时候,那时自己正在独立做Android项目。记得刚刚写完那个ListView列表页面(木有下拉刷新,上拉加载),只有一个简单的分页功能,就是当ListView滑动到最底部的时候,会去请求下一页数据,但是没有那个加载更多的Footerview。公司的那只产品汪过来看了我实现的效果,说:怎么没有下拉刷新,上拉加载啊,这可是APP的标配啊!
因为那时候真的太菜,刚会Hello world不久,又要急着赶项目,虽说后来也折腾出来了,但是我非常清楚的记得那时候是非常渴求有人能给我一份完美的Demo啊。后来接触的东西多了久了,发现其实下拉刷新,上拉加载很简单,稍微复杂一点的就在于某些使用场景,需要解决一些手势冲突问题。所以,希望Demo能够对那些不熟悉下拉刷新,上拉加载的童鞋有一点小小的帮助,大神们就飘过吧!
为什么Demo中没有RecyclerView的下拉刷新上拉加载?
在GIT上也找过一些,自己也尝试写过一些Demo,虽说功能也能实现,但效果并不能让自己满意,所以这里就不考虑ReclerView啦!
为什么初始化时Item时,没有满屏?
因为目前市面上的一些APP的下拉刷新上拉加载没有考虑Item不满屏的情况,会有一些异常(也许是因为这种情况很少见),即便是Git上,很多人都在用的pull-to-refresh,在Item不满屏的情况下,上拉加载更多时,Loading的FooterView会紧贴在最后一个Item下面,而不是在屏幕的最底部,个人不太喜欢这种不友好的交互方式。
因为涉及到的知识点有点杂,很多知识点是不能去在博客中细细深究的,这里主要介绍的是Android
下拉刷新上拉加载 多种应用场景。
Demo中包含的一些主要的知识点:View和ViewGroup的事件分发机制,DrawerLayout侧滑菜单,SwipeListView滑动删除,瀑布流照片墙效果(参考大神郭霖的代码,做了少许改动),图片轮播,PagerSlidingTabStrip,TabLayout,VewPager等的使用方法在Demo中会有部分体现,网上关于这些方面的知识点的博客太多了,我也是向他人学习的,所以建议先熟悉一下上面的知识点,至少看代码能够明白一些吧。
关于一个下拉刷新上拉加载控件应该注意的地方:
- 使用方便,能适用于多种情况
- 解决一些手势滑动冲突
Demo中包含了一些常见的拉刷新上拉加载使用场景(QQ,网易,豌豆荚,优酷之类的APP上面都见到,只能说国产的APP长得都太像了)。
- 基本ListView下拉刷新上拉加载
- 基本GridView下拉刷新上拉加载
- 基本ScrollView下拉刷新上拉加载,包含Button,TextView,ImageView
- DrawerLayout中ListView下拉刷新上拉加载,解决DrawerLayout侧滑与ListView下拉上拉的手势冲突
- SwipeListView的下拉刷新上拉加载,解决滑动删除的Item与ListView下拉上拉的手势冲突
- MultiColumn瀑布流的下拉刷新上拉加载
- ListView+图片轮播的下拉刷新上拉加载,解决轮播图片滑动与ListView下拉上拉的手势冲突
- PagerSlidingTabStrip+ListView+图片轮播的下拉刷新上拉加载,解决ViewPager,轮播图片滑动,ListView下拉上拉的手势冲突
- ……继续添加未完成
Demo效果图:
看完Demo效果图就应该上代码和Demo源码了,因为最近小忙小忧桑,还有一些下拉刷新上拉加载的应用场景没写完,所以代码和Demo会在后面的博客中给出来。
版权声明:本文为博主原创文章,未经博主允许不得转载。