前言:由于项目需要,经理喊我做一个瀑布流的视图,在网上找了几个目前主流的几个瀑布流解决方案。最后分别研究了各自的解决方案,我选择了StageredGridView。大家可以在github上找到。但是最后我发现用StageredGridView来实现下拉刷新、上拉加载更多很不方便,并且StageredGridView在很多功能上还不完善。思前想后,几经周折我还是在StageredGridView上找到了突破口。

目标:由于下拉刷新、上拉加载更多,网上已经于很多的相关解决方案,我研究了这些解决方案,发现一个共同点,都是在ListView、GridView、ScrollView上做的处理。包括目前github上有个项目叫PullToRefresh的,可以直接使用在ListView、GridView、ScrollView,在StageredGridView上就不适用了。想了一下,如果能做一个这样的控件,任意View(如:LinearLayout,)放在其中,都能很方便的实现此功能,那该多好啊。故我想了一套解决方案,希望大家一起来探讨,指教。

方案:在一个RelativeLayout中,先放上5个布局(当然可以是任意的,我选择的是LinearLayout)。如下图所示:



在这样的方案下,我分别测试了StageredGridView,SrcollView。都可以达到预期效果,由于项目紧就没有过多的测试其他视图,这也是我拿出来讨论的目的,希望大家一起来完善。

实例效果:下面是我测试StageredGridView的效果图。


初始化界面



下拉过程中


提示可以更新


更新中


提示上拉加载


释放加载更多


加载中


还可以左拖


也可以右拖

源码:

​resource.rar​(4.39 MB, 下载次数: 176)

结言:不是为了解决问题而解决问题,希望大家能帮我完善此功能。方便以后项目开发。